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



Partial fix for #878
Might be simpler to provide a `CopyOnWriteDictionary` constructor or `static` method which sets `_innerDictionary` rather than `_sourceDictionary`.  Then have `ViewDataDictionary` inherit from `CopyOnWriteDictionary`, calling the appropriate base constructors as needed.