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



Partial fix for #878
Ick.  Just `internal` but ick all the same.  How about an `internal` _property_ exposing `_data`'s `Type`?  Mark that with `// for testing only`).
Same for the newly-`internal` field in `ModelStateDictionary`.