Currently we overload the definition of WriteTo on IHtmlContent
implementation classes to either represent a "real" write or a "flatten"
by checking if the writer inherits HtmlText writer.
This overloading is a bit of an odd fit and hides the real semantic we
want for flattening.
Additionally, we want to gradually make the concept of a pooled
backing-buffer for IHtmlContent first-class - using pooled buffers
dictates that we support move-semantics to some degree.
This change makes the work that we do for flattening into pooled buffers
explicit rather than hidden.