Make image building failures cleanup provisioning currectly

- Modify how cleanup tasks work so that a task can be added and then
removed later.
- Modify all the storage provisioning code to use this new way of
specifying cleanup tasks.