Implement job expiration and reaping

My mistake, didn't include @rculbertson's commit that had tests. Included now.