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.