initial commit
work on Set
and some more stuff from NSSet
add tests for set