Distinguish job states in UI
The jobs should now have 4 distinguishable states:
- Waiting: There is no progress object
- Started: There is a progress object, but percent is anything but 100
- Completed: Progress percent equals 100
- Errored: There is a message object on the progress object