Check for Marketplace update, offer to download it if one is available (bug 1097430)

 * [ ] Merge zamboni side for the packaged app: mozilla/zamboni#2740
 * [x] Implement `applyUpdate()` in direct installer
 * [x] Style the banner and its buttons following mockups
 * [x] Map banner buttons, and change the content when the user chooses "download"
 * [x] Unit Tests

To test locally, you need to emulate the fact that you've got a Marketplace package installed. It can be done on Firefox Desktop while serving fireplace with gulp. Assuming you are serving Marketplace from `http://localhost:8675`:
- Build a dummy packaged app, put it in `src/app.zip`
- Build a dummy manifest and make it reference the app by setting  `"package_path": "http://localhost:8675/app.zip"`, then put it in `src/packaged.webapp`
- Open `http://localhost:8675` in your browser, open the console and install the app with `navigator.mozApps.installPackage('http://localhost:8675/packaged.webapp')`
- Verify with `navigator.getInstalled()` that the install worked, the package and manifest need to be valid, the result of `installPackage()` should give you hints if it failed
- Reload `http://localhost:8675` - It should check for update in the background, but not find any yet
- Bump version in manifest - reload `http://localhost:8675`, now it should offer you to upgrade
- Clicking download should download the app and update it to the new version
- If you reload `http://localhost:8675` should no longer offer you the update
The spec says that it should not come back once dismissed. The rationale being that they can still update through the notification area. I'm unsetting the "remember" part when the user is dismissing the banner after updating, though, so that he can see it for the next version.