Add `[HiddenInput]` and `ModelMetadata.HideSurroundingHtml`

Issue #843 
- address related TODO items
- add missing validation messages to `@Html.Editor()` (TODO that wasn't tracked here)
- sort `ModelMetadata.Properties` as MVC 5.2 does (part of #964)

These remarks aren't :100: percent true until we implement #963.  Neither `[UIHint]` nor `[HiddenInput]` change the chosen templates.  Including these `<remarks/>` with expectation we fix #963 soon and to avoid having to touch this class then.