Initial immutable Set impelmentation

Here is my initial go at a Set implementation.
Yeah, it might not be used. I just went down the NSSet documentation and implemented most of that to make sure I did not miss anything. You can take it out if you want.