Use a prepared buffer for indent writing

Working with a large json file and writing it out with formatting 100 times created 142mb of temporary strings in memory from the indent. Now down to 1.5mb.
Slightly faster as well, but not a lot.

Formatting is often off in places like webapi so this lazy creates the indent buffer. Existing indentation unit test covers this change.