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.
This is another place that as the duplication (and wrong assumption of `description` being available on all matchers) issue.