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 changed it to sorting every list in both dictionaries followed by straight dictionary comparisons, and the time difference using the test data is negligible. The only thing I'm worried about is that symmetric_difference is O(n) where sorting is O(n log n) so it may slow down as more samples are checked.