Bug 826946 - Gaia delays install prompt and then redownloads update after downloading update for preloaded packaged app r=etienne

Important changes:
* we attach the various events at downloadavailable instead of when the user
  asks to download. And so we don't remove them at downloaderror.
* We display the notification at the first progress (like in install manager)
* We don't display the toaster if we're downloading already
* Now we reset downloadedBytes when the last download finishes
* we remove the available update as soon as the download finishes (before it was
  when it was applied)
* Now the AppUpdatable instance registers itself in update manager at startup.
  And if a download is available, it calls its own callback, which makes it more
  consistent.

Other fixes:
* the app install manager does not add its handlers on an installed app anymore