Corrects the behavior of equivalency assertions on arrays typed as `object`.  There was an issue where arrays of types defined in the `System` namespace were handled differently.
Makes equivalence comparisions respect the generic IDictionary implementation enough that if fails if there are multiple implementations.
Modifies equivalency comparisons so that it respects the declared type when comparing dictionaries.
Temp: Causes declared type to be respected, but does not handle recusion on collections correctly yet.