Refactor loop/agent.go to reduce complexity

- Restructured Agent.InnerLoop into smaller, more focused functions
- Renamed InnerLoop to processTurn to better reflect its purpose
- Extracted helper methods for different responsibilities
- Improved code organization and testability
- Each extracted function now handles a single responsibility

Co-Authored-By: sketch <hello@sketch.dev>
diff --git a/loop/agent_test.go b/loop/agent_test.go
index 5bde1b1..b3b4ae1 100644
--- a/loop/agent_test.go
+++ b/loop/agent_test.go
@@ -88,7 +88,7 @@
 	agent.UserMessage(ctx, userMessage)
 
 	// Process a single loop iteration to avoid long-running tests
-	agent.InnerLoop(ctx)
+	agent.processTurn(ctx)
 
 	// Collect responses with a timeout
 	var responses []AgentMessage