host: Split apart persistence interface of the host backend so that per-job state commits can be performed by the backend.

Signed-off-by: Eric Myhre <eric@flynn.io>
host: Persist job removal properly (delete instead of putting nils).

Signed-off-by: Eric Myhre <eric@flynn.io>
host: Account for deletion of backend state per-job; particularly, scenarios where the host service overall has some state for the jobID but the backend has not.

Signed-off-by: Eric Myhre <eric@flynn.io>