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.
We'd still like the `improve_hash_formatting` method applied to `super`, as it is below.