[Design] Add writing scopes to RazorPage.

- RazorPage now has the ability to use writing scopes to control where things are written.
- This enables RazorPages to use these writing scopes with TagHelpers.  TagHelpers use them to buffer attributes that have C# contained within them and to also buffer content of TagHelpers who's ContentBehavior is Modify.
- Added RazorPage tests to validate their functionality.

#1102
No need for a method to accept a custom writer, remove this.