Fix all matcher exception when actual not enumerable

When the action value of passed to the `all` matcher is not enumerable,
rather than failing to match and returning an error it raises an
exception. This commit ensures that `actual` is enumerable before
proceeding with matching.
I think I'd like to see a private method like `actual_enumerable?` or `actual_valid?` added that simply checks `Enumerable === actual`.  `Enumerable === actual` isn't an expensive calculation, and it's always nice to have less state to manage.  We've used this pattern elsewhere:

https://github.com/rspec/rspec-expectations/blob/a72203a0384487c067bad5133e13a6b706803b63/lib/rspec/matchers/built_in/be_within.rb#L58-L60

https://github.com/rspec/rspec-expectations/blob/a72203a0384487c067bad5133e13a6b706803b63/lib/rspec/matchers/built_in/be_between.rb#L63-L65