Fix #705, `EditorFor()` finding incorrect values

@sornaks for test utlility changes
@rynowak for `TemplateInfo` changes
It happens when `@Html.Display[For[Model]]()` and `@Html.Editor[For[Model]]()` call `TemplateBuilder.Build()`.  So it's tested pretty thoroughly with my additions to `DefaultDisplayTemplateTests` and `DefaultEditorTemplateTests`.
Moreover, as we discussed offline, our test infrastructure doesn't make it simple to get at the inner `HtmlHelper` or `ViewDataDictionary` instances in these template (i.e. recursion) cases.  So I won't take action on this _now_ but will keep the testing capability in mind next time I need to change `DefaultTemplatesUtilities`.