Update service icons on a machine.
Consistent API for DB event handling.
Eliminating dupe tests.
Merge pull request #320 from kadams54/machine-service-icons

### QA

With `/:flags:/il/mv`.

1. Deploy the Wikimedia bundle.
2. Drag-n-drop the Wordpress charm over, but don't deploy it.
3. Switch to machine view.
4. Run this in your console:
~~~~
var u = app.db.units.item(2), m = app.db.units.revive(u); m.set('machine', '0');
~~~~

You should see the Wordpress icon added to the 0 machine.
Refactor the deployer view to easily add changes version of summary.
Show recent list of changes in the summary panel.
* The changes button pops up the summary panel with the recent changes.
* When the panel is open, the changes button closes the panel.
* Deploy confirmation summary info is _not_ shown when the recent changes are shown.
* Likewise recent changes are not shown when the confirmation is up.
Merge pull request #322 from jaycee/uncommitted-change-list-deployer-bar

The changes button on the left of the deployer bar can now be used to show
recent changes in the summary panel. This largely reuses the logic of the
deploy confirmation functionality, with some refactoring to allow both actions
to coexist.

There are still changes necessary to for this work to be done:
* The recent changes should be rendered in the confirm deploy version, in a
  collapsed summary panel that can be expanded.
* There is still a lot of visual polish necessary to match the mockups.

QA:

with :flags:/il/mv/

1) Deploy a service
2) Click "changes" on the left of the deployer bar.

You should see a list showing that the service has been added and a unit for
that service has been added. You should not have deploy buttons or other
controls.

3) Click "changes" again.

The the summary panel should close.

4) Click deploy

You should see the usual deploy confirmation; it should all work normally.