Add ShouldBeUnique and ShouldNotBeUnique for collections

Resolves #140
I think going forward we need to create message generators so each overload has nicer error messages