bug 1077595 - Use DataStoreChangeEvents to update Download API Manager c...

...ache up to date. Move tracking of active downloads into StatusBar instead of DownloadNotifications. r=crdlc,mhenretty
`DownloadApiManager` as a middle layer should not propagate the raw event directly. It is difficult for the user of `DownloadApiManager` realizing what to do when receiving an `add` event. In this patch `download list` updates a corresponding `download item` when receiving the event but it is not straightforward. 

I would suggest to dispatch different types of events corresponding to the state change of `DownloadApiManager`. When there is a cached download object that gets updated, we could dispatch an `update` event. If the download object does not exist, it could dispatch an `add` event.