Record updated time for scheduled tasks

The scheduler currently records the time a task was scheduled but not
the time its state last changed. Replace direct sets of "status" with
calls to a new update() method that also sets a new "updated_time"
attribute. When a scheduled task includes an "updated_time" attribute,
expose it when serializing. This allows frontend clients to compute, for
example, a runtime for a DONE task.
Merge branch 'record_updated_time_for_scheduled_tasks' into visualdna_hackday_2013-06-19