Ensure all task state changes go through task.py and the run-db.

Some task state changes (in and out of the 'held' and 'runahead' states,
which has no consequence for other task state variables) were being
actioned by direct access to the task state object without going through
the task proxy class and updating the new run-db.
Merge pull request #245 from hjoliver/run-db-task-states

Ensure all task state changes go through task.py and the run-db.