Added #complete_step, updated methods to use it to both add completed step and save state of job. Updated #save to not save as raw, to allow automatic serialization/unserialization of the cached job object