Allow Hash and List Iterators to break out of iteration.

Alters the signatures of `HashIterator` and `ListIterator` to
return a boolean value. When an iterator returns `true`, the
iteration is stopped and the call to the respective `Each`
methods returns immediately.

This allows us to iterate over list/hash items until a
certain condition is met.

The `Hash.Each` and `List.Each` methods themselves return this
boolean value. We can use it to determine if the iteration was
interrupted or not.

This addresses issue #2