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.
because arraysegment is wrong. It projects the underlying buffer, but there is no guarantee that will never get reused