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
If you want to disable dismissal then you'd create the banner with `<mkt-banner dismiss="off">...</mkt-banner>`. I'm guessing this should only be present if you can dismiss it.

It might be best to update [the component](https://github.com/mozilla/fireplace/blob/79a9676794478a02ef05649f9dda17f28cfb4cfd/src/media/js/components.js#L80-L91) to always put the close button in the DOM and add a `mkt-dismissable` class when it can be dismissed.