removed entries weren't being taken out of the cache correctly
better handling of non-generic usage when key or value objects provided are null
allow CopyTo to emit into an array of object
version the dictionary, so that enumerators throw exceptions if the dictionary was modified while enumerating over it