+ unit tests; fixed bug in CollectionTools.HasSingle method