Add to_be_deleted column for jobs

We cannot just outright delete a job from the database, we will have to
stop all its tasks on the agents they are running on first.  This must
be an asynchronous process.
Modify tests to accommodate to_be_deleted column
Add DELETE API endpoint for single job
ON DELETE CASCADE for task-log association FK
Docstring for single job delete endpoint
Catch ConnectionError and retry when deleting task
Delete tasks from agents asynchronously
Switch TaskLogs FKs to passive deletes

The former attempt at solving the problem did not work.

This one uses the underlying SQL database's ON DELETE CASCADE function
to achieve auto-deletion of task log associations on deletion of the
associated task or log, which means SQLAlchemy does not first have to
load the entire list of relationships before deleting an item.
Catch ProtocolError (workaround for requests bug)

requests 2.4.0 has a bug where it will raise ProtocolError from the
urllib3 package instead of the documented ConnectionError when a
connection cannot be established.  This is a workaround for that.
Do not assign tasks from jobs marked for deletion
Only delete tas from agent if actually running

The check was in place before, but a typo rendered it ineffective.
More informative log entries
Test for job delete endpoint
Merge pull request #185 from guidow/delete_jobs

Delete jobs