possibly working cron impl

it is not inserting updated cron entries. need to figure out why
added comma
split delete and insert in seperate batches

since batch statement's order is not guaranteed. STUPID CASS DOC!!
Tested this by creating cron and at policies and table is getting properly updated
Tests are incorrect/incomplete. TBD
no batch for delete

since it is a single statement. Also, minor cleanup
AUTO-407 fix: Giving 400 validation error instead of 500

Since the errors are caused by croniter throwing exceptions other than ValueError, I am catching
Exception to handle these errors.

Also, this does not solve seconds problem since croniter considers 6th member for seconds.
Merge branch 'master' into cron_impl
UNTESTED - coded to handle group/policy deletions

My first code attempt which should work. NOT TESTED AT ALL
UNTESTED: a better soln
working - deleted group/policy not updated

updated tests to handle changed return value of fetch_batch_of_events and check calls to
update_delete_events(). Added tests to check if cron updates are made and handling of deleted group and
policy
updated model tests

to accomodate changed fetch_batch_of_events and update_delete_events.
Merge branch 'master' into cron_impl
fixed lint errors
added docstring
adding cron column via migration
cleanup

added docstring and removed unnecessary change
cron column added

since we are not yet sure if migration will automatically run on every new node or what the procedure is
Merge branch 'master' into cron_fix

Conflicts:
	otter/json_schema/group_schemas.py
Not allowing seconds in cron

Also added tests for valid and invalid cron entries. However, following 2 issues still remain due to bug
in croniter:
'* * * * 7' works (last element is between 0 to 6)
'* * 0 * *' works (day of the month should be 1-31)
Merge branch 'master' into cron_impl

Conflicts:
	otter/models/cass.py
Using newly committed _delete_events_query_and_params method to delete events in update_delete_events
method and removing delete_events as earlier. Updated tests accordingly
updates based on @dreid comments

- removed Recurrence class and made it a function. Changed it in tests and models/cass.py
- closure function instead of lambda for readability
- added test for checking if timer works when fetch fails