* add job state machine validations to persistence and tests
* update state machine diagram
* format
* remove terminal state transitions
* fail attempt before cancelling job, to respect job state machine
* update job status state machine diagram
* verify order of db calls