Fix all matcher to work with any object that responds to each_with_index.

Commit 5b4dc0ca6ad2ed11a7e5100854c7b4022010382c introduced explicit
checking to ensure that the all matcher is run only on Enumerable
objects. This broke the matcher for objects that behave like Enumerable,
but don't include the Enumerable module (e.g. Rails
ActiveRecord::Relations).
Add test to all matcher to ensure objects with #each_with_index are usable.
Fix failing 1.8.7 test.
Rename #enumerable? to #iterable? for clarity. Add fail test for #each_with_index context.