Added transitive hash protocol and made NSArray, NSDictionary, NSSet, and NSOrderedSet conform to it.