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.
I looked at what StringWriter \ TextWriter do by default and they don't throw. See here - http://msdn.microsoft.com/en-us/library/cay30k2f(v=vs.110).aspx - their docs don't mention an ArgNull. I'm not entirely sure if something in our call stack does call Writhe with null strings.