realtime updates for the JobList view
Note: This PR depends on !106 (merged)
The purpose is to display job state updates in the JobList view without having to reload the page:
- update the status icon
- show/hide the abort button
- enable/disable the delete button
- remove job from the list when destroyed
There are additional commits for:
- refactor the aio job events channel implementation to cache job states in memory
- add a redis key to store the job result
result:job:<ID>
- reporting all job state changes (especially the transitions to DELETED/ARCHIVED) in the redis db