Unwrap nullable types in PropertyHelper prior to looking up properties

Fixes #721
Ensure `TemplateInfo.FormattedModelValue` & `HtmlFieldPrefix` are not `null`
- Fixes #705
Enable us to unit test `@Html...For()` methods
- add more `DefaultTemplatesUtilities.GetHtmlHelper()` overloads, all
  returning a strongly-typed helper
- also correct that method to ensure template helpers each get a unique
  `IHtmlHelper` instance
Add `@Html.Display()` and `@Html.Editor()` tests with values in `ViewData`
Also test `string.Empty` model
Address review comments
- XML comments for changed `TemplateInfo` properties
- correct `DefaultDisplayTemplateTests` and `DefaultEditorTemplateTests` namespaces
- add a couple of low-level `TemplateInfo` tests
Fix for #617 - ViewResult can be constructed without a view engine

We want result types to be constructable without services.
Adding attribute routing
addressing CR feedback