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.
The problem is it's actually two search operations: first to see if any jobs themselves match, then another to see if the data the jobs are operating on match. It's that second search that makes life difficult, but it's important because you can have many jobs with the same default options but working on completely different data.. 

I don't think the hashing will gain us anything as it will still be the same SQL query like it is now on line 112, just with one item in the WHERE clause instead of three. As for pulling the SQL queries out, I'm not sure what you mean by that?