Update analysis job objects

This adds some functionality to job objects that is needed for the commands selection page. Exists now properly checks the data used for the job, and delete now works for jobs.
I think you can actually just remove the
```python
if not analyses:
    return False
```
and nothing will break, since on line 120
```python
analyses = [x[0] for x in analyses]
```
```analyses``` will evaluate to ```[]``` (and not throw an exception), the check on line 121 will always be ```False``` (and the lookup will be very fast, since it's checking an empty list), and ```for``` loop on line 129 will not execute (again, because ```analyses``` will be an empty list). The only thing you'll have to do is define ```same = False``` before the ```for``` loop on line 129.  Sure, you end up doing a couple more tiny checks (rather than short-circuiting as soon as you possibly can), but if we have a problem with that ```return False```, then that is a way to remove it (personally, I don't care if it stays or goes)