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.
Also, in rspec-expectations we wrap the description in parens in some places like this to make it clear that the phrase is meant to be read/understood as a single item.

Also, rather than formatting this stuff yourself, I wonder if we should consider re-using the logic that already handles this in rspec-expectations?

https://github.com/rspec/rspec-expectations/blob/09ec82cd7b8805b5c826c832d5ad1d151520587c/lib/rspec/matchers/composable.rb#L82-L115

It could be moved into rspec-support and then used from both places.