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)

Wrapping in ROC? Meh, don't really care. Certainly doesn't seem important, given the contracts in place.

Sorting? Does seem important or apps will eventually start to fail. I think we should have something stable here (and everywhere else).