Add better job status tracking

Add better job status track through the life-cycle of:

delayed, queued, active, complete, expired

This will allow better tracking about the state of queued jobs, and make
it easier to clean up after ourselves, removing old job data after some
amount of time, for example.