Modify ViewDataDictionary and ModelStateDictionary to use copy-on-write
semantics to reduce dictionary entry allocations.

* Change WebViewPage to lazy initialize HtmlHelper<object> and
  AjaxHelper<object>.

Fixes #2085