Fixes a couple of bugs for when a task becomes a download task

If a task becomes a download task. None of the old delegate methods for
the old task will get called. This means it wont remove the observer
and it will not delete the delegate.

We never setup the new task with observing and it’s delegate either.
Merge pull request #1637 from kylef/didBecomeDownloadTask

Fixes a couple of bugs for when a task becomes a download task