Add tests for the machine view header labels.
Merge pull request #327 from huwshimi/header-count-tests

Added missing tests for header labels being updated with the correct machine/container/unit counts.
Unit tests for _smartUpdateList, used in updating machine column.
Unit tests for _renderMachineToken.
Merge pull request #330 from jaycee/test-love-2-machines

app/widgets/machine-panel-view.js 
* ```_smartUpdateList``` has been refactored, moving its two responsibilities--
  adding and removing tokens as necessary--into two methods. These methods are
  easier to test, and a bit clearer to read.

tests/test_machine_view_panel_view.js
* Unit tests for all inputs and all expected behavior of the components of
  _smartUpdateList have been added.
* Unit tests for _updateMachine and _renderMachineToken have been added

Note to reviewers: machine tokens are also tested in their own file, which has
not been updated. Additionally, invisible in the diff, but available in the
full file, machine column has quite extensive functional testing; I've only
added units to more directly tests private methods that were only implicitly
tested.
Cleanup unplaced service unit code.
Merge pull request #332 from jaycee/service-unit-code-cleanup

This is a trivial branch landing some minor refactors to the unplaced service
unit code.

* Service unit token rendering is broken out into its own method, both for
  consistency with other tokens and to work more cleanly with _smartUpdateList
* The unused machine and containers attr from the service units has been
  removed; containers was never populated and neither were used, nor appear to
  need to be used.

If I'm wrong on the last assertion I'll happily revert that change.

Service unit rendering is well tested; as this just moves functionality out of
an anonymous function and removes unused and untested bits, no new tests are
needed.
Beginning functional test for containers column.
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.