Beginning functional test for containers column.
Add support to placeUnit for placing a unit on an already existing machine
Added tests for placeUnit functionality in the ecs
Switch to an internal list of machine tokens.

By using an internal list, we can re-render specific tokens by pulling
them from the list and simply calling render(). First step towards very
efficient and intelligent rendering of only deltas.
Fixed bug 1321345
Merge pull request #333 from jaycee/test-love-3-functional-containers

This adds two functional tests:
* A test that containers are rendered when a machine is selected.
* A test that containers can be selected via click.

It's follow up to a previous PR, which ensures the containers column is
thoroughly tested.
Merge pull request #335 from hatched/inspector-1321345

When charm urls contained a hyphenated name and a charm version number the package name was not parsed correctly when creating a new model.

#### To QA
- Use the il and mv flags (This bug only presented itself using these flags).
- Search for the `juju-gui`.
- Drag and drop it onto the canvas.
- Click the service icon to open the inspector.
- Close the inspector
- The service token should still read `juju-gui`
Merge pull request #325 from kadams54/machine-token-rendering

First pass. Everything works, tests pass, but the code probably isn't as pretty as it could be. Additionally we still re-render the entire machine token; I haven't started on making that smarter to only re-render (for example) the list of icons. I suspect we'll also want to switch the unplaced units to a similar approach once this work is finished. At that point we'll be able to eliminate `smartUpdateList()` - yay!

### 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.
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.
Don't show ghost inspector deploy button with the deployer bar.
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.
created the charmbrowser view and have the new curated result list rendering into it

token is highlighted when being clicked on

Make headers sticky and fix the position of the spinner
Added charmbrowser view test file and tests
Merge pull request #336 from huwshimi/il-controls

This branch hides the ghost inspector deploy controls when the deployer bar is visible.

There is also drive-by to remove some CSS and a template that are no longer being used.

QA:
With no flags:
- Drag a service to the canvas.
- Check that the 'Cancel' and 'Deploy' buttons **are** visible in the inspector.

With mv flag:
- Drag a service to the canvas.
- Click on the service (the inspector should open).
- Check that the 'Cancel' and 'Deploy' buttons are **not** visible.
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.
Merge pull request #339 from kadams54/unit-token-rendering

### 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 and removed from the unplaced units column. Additionally the "All units placed" message should appear.
Merge pull request #338 from hatched/consolidate-browser

This is the first step of a few branches to consolidate the editorial code and search results code into a single `charmbrowser.js` view.

#### Notes
- `editorial` has been renamed to `curated`
- There is an existing bug in develop where the `home` button does not work in the charm search results. This bug still exists in this branch.
- Charm results cache has been removed but there is a card to implement a new version this cycle.
- The old files will be removed as a last step so this only includes the new code.

#### To QA
- Use the il flag (but it should still work fine without)
- Do exploratory QA on the curated results. It should all function the same as before.