Implement syncing of database tasks

Syntax in clock.rb is:

  sync_database_tasks model: Task, every: 1.minute do |instance_job_name|
    # do work
  end

This creates a "sync_database_tasks_for_model_#{model}" that will run
with the "every:" frequency specified - in this case 1.minute. This task
deletes all previous database tasks stored (relating to this particular
sync_database_task call) and recreates them from scratch to avoid managing
which ones have been modifed/updated/removed.

Note that, to avoid the same database task incorrectly being run twice,
we prevent the database tasks being executed in the same cycle that the
database sync occurs.

You can have multiple sync_database_tasks calls in the same clock.rb
file as the events are scoped to the particular call that set up that
sync.
Don't over-ride default Manager, but dynamically add sync_database_tasks
Remove all code previously added to lib/clockwork.rb

We can add the necessary require to the clock.rb file - and I've updated
the instructions in the README to show this.
Fix spaces
Merge branch 'robisenberg/allow_database_tasks'
Remove tabs
Version 0.7.3
Refactor database-synced tasks to not delete/recreate tasks each sync

 * change the way database-synced tasks work so we no longer delete and
   recreate them on every database sync, but instead, we add only new
   events, edit any that have changed, and remove events for database
   tasks that have been deleted

 * part of the above change involved creating a
   DatabaseEventSyncPerformer to handle the details of performing the
   actual sync of events from the database.

 * bugfix: db sync doesn't work correctly when sync frequence <
   task frequency. The above change was key to fixing this.

 * updated tests which relied on previous assumption/implementation
   that database tasks were synced on the minute boundary (i.e. MM:00
   seconds). Now that's no longer the case, so switched tests that
   started ticking at @next_minute, to start @now.

 * Update README section "Use with database tasks" to remove bit
   about running database sync on minute boundaries, and not running
   database events in same cycle as sync since these are no longer
   the case
Merge pull request #93 from robisenberg/fix_database_tasks

Refactor database-synced tasks to not delete/recreate tasks each sync
Version 0.7.4
Bugfix: database sync task won't be updated if 'at' changes in database

 * split #test_edited_tasks_switch_to_new_settings into 3 individual
   methods to check that name, frequency and at changes for task in
   database each lead to clockwork event for task being updated.

 * modify ManagerWithDatabaseTasks#db_task_has_changed to check if
   task's `at` value has changed

 * over-ride At in ManagerWithDatabaseTasks to add attr_readers
   for min, hour and wday, and give it custom equality (==) when each
   of these three instance variables match. This was needed so we can
   compare At.parse([new_at_value]) with the event's existing `@at`
   value
Merge pull request #95 from robisenberg/fix_database_tasks

Bugfix: database sync task won't be updated if 'at' changes in database
Add support for database-synced tasks with multiple Ats (resolves #94)

 * Accept comma-separated string for `at` from  task in database and
   split this into an `at` array to make use of normal Clockwork support
   for events with multiple `at`s

 * Updated ManagerWithDatabaseTasks and DatabaseEventSyncPerformer to
   handle multiple `at`s
Merge pull request #96 from robisenberg/allow_multiple_ats_for_database_tasks

Add support for database-synced tasks with multiple Ats
Version 0.7.5
Take multi-line regular expressions into account when parsing time
Merge pull request #103 from stackbuilders/regex_fixes

Take multi-line regular expressions into account when parsing time