Add the new Interactor::Iterator module

Iterators will loop over a collection in the context, performing on each
element of that collection.
Flesh out iterator functionality for array collections
Enable iterators to perform hash collections
Include index in perform_each and rollback_each iterator calls

…if arity allows.
Don't perform on any element of an iterator if already failed
Don't perform any interactor of an organizer if already failed
Underscore and privatize non-public-API methods

This will help avoid collisions with keys that an interactor adds to its
context.
Avoid extra object creation
Wrap single elements in an array for an iterator's collection
Raise an error if an iterator's context doesn't have the collection key

The missing_collection! instance method can be overridden to not raise
an error.

This changes the lint tests a bit to assert that the perform method
exists and can be called, but not necessarily that an exception won't be
raised. An iterator with no specified collection key raises an exception
out of the box.