formatter: cut doc IR allocation by another 8x on the hot path master
Continuing from the pooled arena: the remaining format-side allocations were variadic slice arguments to f.Concat (one heap slice per call), undersized parts regions growing on append, per-field pad strings, and the printer pool being dropped by the GC between calls. - annotationsDoc builds its group from Parts regions instead of three variadic f.Concat calls; emitWithAnnotations and emitTokens request regions sized to their real append counts. - the printer moved into the Arena: its scratch survives the GC as long as the arena does, where the sync.Pool was cleared every cycle. - padRight slices a shared spaces constant for empty bases; fieldPads pre-sizes its pad list. BenchmarkParseFormat: 73.4k -> 8.3k allocs/op, 4.77MB -> 1.16MB, 4.9ms -> ~2.6ms. The formatter now allocates about as much as the parser, whose AST nodes are kept and cannot be pooled.