Renamed Set to HashSet
Placed strict set compatibility requirements on set operations.
Removed some unnecessary calls to hash function.
Fixed bugs from not rehashing transforms elements in HashSet::map[InPlace], improved testing, added addMany/removeMany.
Added missing typechecks to HashSet
Implemented Set (fixes #38), moved AssociativeKeyGenerator into Utility namespace.