Version 0.3.0: breaking changes. See commit message for details.

New feature: collection object.

The results of get_array(), get_if_*() and select() used to be returned as arrays.
They are now wrapped in a collection object that implements the Iterator interface.
This class behaves like an array in common operations such as foreach() loops,
but in other cases, it will break existing code.

For each class "Foo" that inherits \Beaver\Base, you should create a second class,
either "FooCollection" or "Foo_Collection", that inherits \Beaver\Collection.
You can add methods to this class to perform various operations on the collection
instead of operating on individual objects. As an example, the Collection class
comes with a delete() method that deletes every object in the collection using a
single query instead of deleting each object separately.