Added indexedDictionaryByKeyPath method to array and set
Added unit tests for indexedDictionaryByKeyPath methods.

Tests uncovered a bug in the NSSet implementation, so fixed that as
well.
Added [NSMutableSet exceptSet:] method
unit test for [NSMutableSet exceptSet:]