Update terminology from task to db_event
Refactor and reorganise database event files
Define terminology of events/model to clarify code, and refactor.

 * Added DatabaseEventRegistry class for managing tracked events,
   instead of hash, so can have somewhere to group related methods
Fix refactored database events and use namespacing

 * namespace database-backed task code under Clockwork::DatabaseEvents

 * fix issues and bugs to pass all tests
Refactor tests to improve readability

 * remove restriction that database sync frequency had to be > 1.minute

 * refactor tests to remove use of stubs and instead created actual
   class (ActiveRecordFake) that mimics the ActiveRecord interface,
   which produces much more readable tests that demonstrate actual usage

   This also allows us to avoid stubbing stubbing #all on the model
   classes to return the model instances needed for the tests - instead each
   test creates the model instances it needs, and #all is implemented to
   do the right thing.

 * in tests, rename task -> event

 * in tests, rename ScheduledTask -> DatabaseEventModelClass

 * create #setup_sync helper method for setting up database sync for a
   particular model, and use this in every test
Make model name attribute optional

 * if model has no name attribute it will default to
   "[ModelClassName]:[id]
Improve README clarity for database events, and reflect recent changes
Add timezone support from pull request #112
Apply tomykaira's feedback on pull request #114

 * make At changes directly in that class

 * switch unecessary `protected` back to `private` in
   `database_events/event.rb`
Fix database events tests: ArgumentError: argument out of range
Replace use of protected with private
Merge pull request #114 from robisenberg/database_events_refactor

Database events: major refactor