Removed null-coalesce that is not longer necessary.
Went back to seperate GenericEnumerableEquivalencyStep and EnumerableEquivalencyStep classes.  Simply easier to reason about this way.
Moved specs that really made use of ShouldAllBeEquivalentTo behavior to their own region.
Removed unnecessary use of an anonmyous type in a test.
Added a ShouldAllBeEquivalentTo spec for assertion rules.
Rewrote ShouldAllBeEquivalentTo in terms of ShouldBeEquivalentTo
Specs for another case where delared type is not respected
ShouldBeEquivalentTo now respects the Runtime/Declared type configuration options within its Enumerable related steps.
Merge pull request #138 from vossad01/Issue22/RespectCollectionDeclaredType

Enumerable object's runtime type used by ShouldBeEquivalentTo rather than declared type