Use io.WriteString to avoid unnecessary copying.

Improves execution benchmarks:
- Render time down by 3-4%
- Allocs down by 10-20%
Add htmlEscapeString function

Saves 15% rendering time on real-world benchmark by avoiding a lot of work in
IndexAny.  (Allocs remain about the same)
Pre-size argument slices.
Parse optimization - remove use of append() when processing raw text.

Improves ParseFeatures benchmark by 5% time, 40% allocations.
Improves real-world benchmark by 37% time, 38% allocations.
Remove unused backup() in rawtext lexer
Lexer - Fast forward through {literal} sections

Simplifies code a little and shaves 5% time off real-world benchmark.
Fix - defer only one func to protect print directives.

Happens to also improve benchmarks:
- BenchmarkExecuteFeatures - 5% time, 30% allocs
- Real-world benchmark - 20% time, 75% allocs(!!!)