Changes the failure message for ShouldThrow<T> so that it always includes the type of the thrown exception.
Merge pull request #123 from vossad01/Issue#122

Include the thrown Exception's type on ShouldThrow failures
Extracted EquivalencySpecs for collections to their own type because they seem to be a special case.
Added spec for comparing a non-collection to a collection
Hopefully made a little clearer that assertion rules only apply to members and not the root subject itself.
Added a StringEqualityEquivalencyStep to fix a bug leading to a poor failure message when using a string as the root object with ShouldBeEquivalentTo
Removed the use of collection equivialency in date time property equivalence specs.  There, it was unrelated to the behavior under test.
Removed assignment of a collection member from an equivalence spec because it was tangential to the behavior under test.  Added new spec to also test beahvior of having a collection to CollectionEquivalencySpecs
Another test showing a possible bug;  Recursive members are always checked
against Subjects's runtime type rather than the declared type