Subset matcher

Since the modified `contains` matcher introduced some weird behavior, this extracts the subset functionality into its own matcher: `containsSubset`. (Name very much up for debate)

Note that this doesn't verify that array or ordered set order is being maintained, i.e.
```objc
expect(@[ @1, @2, ]).to.containSubset(@[ @2, @1 ]);
```
would pass.

It also doesn't allow mixing arrays and sets. It would be possible to allow all `id<NSFastEnumeration>` on the right hand side and only special case `NSDictionary`.