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
Adding RazorView to Microsoft.AspNet.Mvc.Razor

RazorView was part of the previous commit but was separated to make it
easier to see the diff in RazorPage that was formerly named RazorView

Adding IRazorPage and changes per code review comments
Adding Attribute Routing Link Generation
cr feedback
adding a few tests for areas
Http Abstractions for parsing Http headers needed for conneg.
ViewStarts need to be executed as part of View execution

Fixes #834
Adding OutputFormatter base class
Fixing project.json in Mvc
Adding MvcOptions.OutputFormatters property.
Modify FindView and FindPartialView to accept ActionContext

Fixes #787
Commonizing code in option provider

* Adding ValueProviderFactoryProvider and CompositeValueProviderFactory to
  maintain parity in pattern with other option types.

Fixes #818
* Changes per PR comments
* Adding OutputFormatterDescriptors