Add support to placeUnit for placing a unit on an already existing machine
Added tests for placeUnit functionality in the ecs
Updated deployer changes panel to match designs.
Merge pull request #331 from huwshimi/deployer-bar-visuals

Updated the deployer changes panel to match the visuals (https://drive.google.com/a/canonical.com/?usp=folder#folders/0B7XG_QBXNwY1WGlyVzN2LWtrcmM)

QA:
Drag a service to the canvas.
Click the "2 changes" link in the deployer bar.
Check that the panel matches the visuals.
Merge pull request #334 from hatched/unplaced-to-existing

1. Fixes a bug with `ecs.placeUnit` which would cause dropping an unplaced unit on an existing container to fail.
2. Adds tests for `ecs.placeUnit`.

#### To QA
- Open `config-debug.js` and disable `simulateEvents`.
- Open `app.js` and add `this.fakebackend = state` after line 418
- Load the GUI using the mv and il flags.
- Drag and drop a charm to the canvas. 
- Switch to the machine view.
- Drag and drop the unplaced unit to the `New Machine` header.
- Click `deploy` and `confirm`.
- Switch back to the service view.
- Run `app.db.machines.add({id: '0/lxc/0'}); app.fakebackend.db.machines.add({id: '0/lxc/0'})` in the console.
- Drag and drop a new charm to the canvas.
- Switch to the machine view.
- Select the `0` machine. You should now see an empty container and 'Bare Metal' with your previous service.
- Drag the unplaced unit and drop it on the empty container.
- Click `deploy` and `confirm`.
- Switch to service view and back to machine view. You should now have placed your new service on that container.
Cache unit tokens internally for easy rendering.

Switch unplaced service unit tokens to function in the same manner as
machine tokens. They're stored in a cache by ID and when a DB change
comes in we grab the correct token and re-render it.