Add optional database event caching

By requiring 'australium/event_cache' in addition to the gem itself,
Australium is now capable of storage, retrieval, and arbitrary queries
of Events contained within a Sequel database.

EventCache#query responds to the same methods as Sequel::Database, but
will turn the resulting Sequel::Dataset into an array of Events. If the
Sequel::Dataset cannot be directly turned back into Event objects, an
exception will be thrown.

Note: GameState objects are currently not preserved by database
caching, as they are not yet efficient enough to store.