Async tasks

Upload and remove are asynchronous tasks and need to indicate this to
grunt via the use of this.async() in the task method.