refactor(job): Drop Job.UnitHash field

This is unnecessary, as it can be derived from the Unit where necessary. This also makes the meaning of a Job object much clearer, removing the possibility for a Job's Unit and UnitHash to diverge.