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.
They are kinda inconsistent: http://msdn.microsoft.com/en-us/library/7dzzaxxx(v=vs.110).aspx

`Write(char[])` allows null, `Write(char[], int, int)` does not.