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



Partial fix for #878
The intent was to specifically not surface `CopyOnWriteDictionary` as part of public surface API.