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



Partial fix for #878
This class should also confirm `ViewDataDictionary` implements copy-on-write semantics.  Don't need to repeat all scenarios covered in `CopyOnWriteDictionaryTest` but do need to test some of them.