Module generator improvements
Generators should parse a run by doing the following:
Create all necessary Result classes for the final jobs in the current module, and check the existence of the results in the database.
(If result exists) -> Do nothing.
(If result does not exist, and prev module result did) -> queue download job, and create jobs normally
(If result does not exist, and prev module result didn't) -> create jobs normally
Generators will need to be passed the dax/master_files objects to be able to add jobs directly to the dax. Similarly, we can move the save_results functionality to the generators.
Enhancements to Result class / Run classes should be handled first.