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



Partial fix for #878
its not an error to check a struct for nullity it's a warning. that concern would come up elsewhere when implementing [NotNull]