Modifying ViewDataDictionary and ModelStateDictionary to copy on write instead of eagerly copying.



Partial fix for #878
pls find a way to avoid constructing 2 new `TemplateInfo` instances when this constructor is called.  `TemplateInfo` will already be non-`null` when this line is reached.