Improve composability of collection argument matchers

* Makes array_including able to take matchers as part of its expected argument
* Makes array_including describe passed matchers so that descriptions compose correctly
* Makes hash_including describe passed matchers so that descriptions compose correctly.
Why bother converting `@expected` and `actual` to sets here?  I understood the reason before, to gain access to the `superset?` method but now you aren't using that...you're just using `all?` and `any?` which are already available on arrays.