Introducing RazorTextWriter

RazorTextWriter represents the result of rendering a page as a sequence of
strings rather than a concatenated string. This avoids building up large
strings in memory.
Yeah, I've always been shot down in the past when I've suggested structs. I'm not super-sure what the right use case for structs are.