Cleanup of some EquivalencySpecs and fix bug with ShouldBeEquivalentTo() called on string

These were come change made while pursuing resolution to #117.  I re-based these to not contain the test or any other code directly related to #117.

Overview:
 * Moved collection equivalence specs to their own type for easier organization.  There was a number of these plus the obvious fix for #117 breaks a majority of them and not the other tests.  This was suggestive of there being something special about collection handling.
 * Fixed a bug causing a NullReferenceException when ToBeEquivalentTo() was called directly on a `string` object.  I didn't bother checking, but I likely introduced this with #116
 * Modified some specs that were unnecessarily utilizing collection equivalence when asserting their behavior.

If you want these split into multiple merge requests or otherwise re-based, let me know.