Separating view execution and Razor behavior

* Introducing RazorPage and RazorPageOfT that represent the Razor
* execution
  aspect of view execution. Moving view execution hierarchy behavior
    (Layout, partial views etc) into a separate RazorView type.

* Renaming IVirtualPathViewFactory to IRazorPageFactory,
  IRazorViewActivator to IRazorPageActivator

* Renaming VirtualPathViewFactor to FileBasedPageFactory to
  correctly reflect what it does.

Fixes #814
these should be TextWriters rather than string (or the stringspool)