Job tracking improvements

 - add helper methods to support fetching created/updated timestamps
 - **do not discard `created` timestamp on update**
 - simplify job id mapping
 - sanity check `update()` to accept valid statuses only

all tests still pass :persevere:
we were discarding `started` on update previously.