various fixes / final touch about job termination and deletion
Many things in this PR related to job termination:
- fixes in the job state machine:
- disallow destroying jobs while they are running
- ensure the transitions from the WAITING/RUNNING states are performed atomically (because they can be done concurrently by django and the controller)
- implement job abort (close #222 (closed))
- do not include deleted jobs in the job_list
- delete the job datadir (in the DATASTORE) on job deletion
- fix a race condition in the aio job events channel
- document states & results in the Job model