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
RazorPage should not show up in the code here, instead we should use the interface (commented elsewhere on this PR)