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



Partial fix for #878
In the link, the passed in type is a ViewDataDictionary (which is a IDictionary). I'm not sure there's any benefit to trimming down one extra parameter to a ctor.