DirtyableDict should be a subclass of dict, not list.
Simplifications and fixes to `Task.get` and `Task.__setitem__` to reduce surprises.