Add `HideSurroundingHtml` property to `ModelMetadata`
- #843
- add property as well as the related `[HiddenInput]` attribute
- use this property to address some TODOs in default display and editor templates
Address TODO item in default `object` editor template
- add validation elements per property in this template
- update editor template test to expect new `<span>` in result
Do not repeatedly evaluate `ModelMetadata.Properties` enumeration
- supports useful property updates of `ModelMetadata` instances in the collection
- provide a controllable ordering using the `Order` value
- part of #964
Add `[HiddenInput]`, `ModelMetadata.HideSurroundingHtml`, and `.Properties` tests

nits:
- add a few missing default `ModelMetadata` property value checks
- cleanup some redundancies in test data initializers
Changes to enable XML Output Formatters.
- Unit / Functional tests for the same.
JsonResult to use ObjectResult for content negotiation to pick default json formatter.
Implementing ILoggerFactory.AddProvider
Adding Input Formatters to MVC Options and using HeaderValueAbstractions