loop: preserve cumulative usage across conversation compaction

conversation: add optional CumulativeUsage parameter to New function

Update CompactConversation to preserve cumulative usage statistics when
resetting the conversation, preventing usage numbers from being lost during
compaction.

Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: s11dcb84790847494k
diff --git a/dockerimg/createdockerfile.go b/dockerimg/createdockerfile.go
index a1ea266..8343005 100644
--- a/dockerimg/createdockerfile.go
+++ b/dockerimg/createdockerfile.go
@@ -165,7 +165,7 @@
 		return llm.TextContent("OK"), nil
 	}
 
-	convo := conversation.New(ctx, srv)
+	convo := conversation.New(ctx, srv, nil)
 
 	convo.Tools = []*llm.Tool{{
 		Name:        "dockerfile",