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.
On second thoughts, I think this message seems ok. It conveys the error message that users are most commonly going to run into - attempting to execute RenderBody from not-a-layout.