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
Moving to RandomNumberGenerator as CryptRandom is not supported in Mono
Remove incorrect override of `ModelMetadata.GetDisplayName()`
- this method delegates to a number of `ModelMetadata` properties
- no use cases for overriding; should not be `virtual`
- `ModelMetadata.DisplayName` override using `DisplayAttribute.GetName()` coming in next commit
Add `ModelMetadata.DisplayName` property
- value comes from `Name` property of `[Display]` attribute
- use new property in `@Html.DisplayName()` and `@Html.Label()`; remove associated TODO comments
Correct `ModelMetadata.IsRequired` to honour overrides
- subclasses would not calculate a value because `ModelMetadata` constructor
  set this property
- meant presence of a `[Required]` attribute in the model was ignored
Add more `ModelMetadata` tests
- Add `CachedDataAnnotationsMetadataAttributesTest`
- Add `CachedDataAnnotationsModelMetadataTest`
- Confirm more default property values in `ModelMetadataTest`
- Confirm use of `DisplayName` in `ModelMetadataTest`
Add `HtmlHelperDisplayNameExtensionsTest`
Add `HtmlHelperLabelExtensionsTest`
Add `HtmlHelperNameExtensionsTest`