Observe pending/in progress bundle deployments.
Ghost inspector opens via a viewNavigate event using a state change
Hooked up the environment header controls and added a machine change object
moved the machine view rendering into browser.js
Merge pull request #215 from frankban/deployer-status-api

Start observing scheduled/started deployments
right after a successful login.
Also notify recently occurred errors.

This way the GUI is able to provide bundle
progress information to the user even if
the user refreshes after deploying a bundle,
or if the bundle deployment itself wasn't
started from the GUI (e.g. from quickstart).

Also did some clean up on the Deployer:Status
related code.

QA:
- juju-quickstart an environment:
  `juju quickstart`;
- switch the GUI to this branch:
  `juju set juju-gui juju-gui-source="https://github.com/frankban/juju-gui.git deployer-status-api"`;
- wait for the GUI to be ready 
  (`tailf ~/.juju/local/log/unit-juju-gui-0.log`) can help;
- deploy a bundle from quickstart:
  `juju quickstart bundle:mediawiki/single`;
- when the GUI opens in the browser, 
  you should see a "bundle in progress" notification;
- now deploy a bundle from the GUI, e.g.: search for "rails"
  and drag the "example-single" bundle;
- you should see a notification;
- refresh to check both pending and in progress bundle are notified;
- wait for the first bundle to be deployed;
- refresh and you should see an "in progress" notification for
  the second one;
- destroy the mediawiki service, and wait for it to be gone;
- wait for the remaining deployment to be completed;
- deploy the failing bundle in http://dpaste.com/1767335/plain/:
  `juju quickstart http://dpaste.com/1767335/plain/`;
- when the GUI opens, you should see an "invalid relation" error for
  the last bundle;
- this error will be visible on each refresh for one hour, 
  and then it will go away: wait if you want, or just 
  trust me and destroy the environment.

Done, thank you!
Fixed failing tests
Set rel-indicator image on update
Responding to reviews: test modified to check for unchangedness, indentation
Merge pull request #217 from hatched/new-states

This branch adds the inspector, machine, and topology states when run using the `mv` & `il` flags. The environment header buttons now show the topology and machine view when toggled back and forth. The inspector also renders into the sidebar.

#### QA
Load the GUI using the `mv` and `il` flags. 
The machine view panel should not be rendered.
Click the machine view button in the environment header.
The machine view panel should now be rendered and the sidebar closed.
Click the service view button in the environment header.
The topology should now be shown.

#### Note
A large majority of this branch is going to be refactored in the follow-up so it's missing tests to cover those areas.
Fixed CI issue, card created - empty attrs in FF are null, not empty string.
Swapped double for single quotes
Testing pre-commit hook

Hooks documentation

NB: This commit has a file (app/app.js) which will not pass lint to
test the pre-push hook.

Documenting hooks complete.

This commit fixes the lint error in app/app.js introduced before.

Added note about os x
Responding to reviews: clarify hooks, simplify sample hook.
Merge pull request #220 from makyo/develop

This is a docs only change.
Minor fix to example hook in docs
Merge pull request #221 from makyo/minor-doc-hooks

Minor fix to example hook in docs
Merge pull request #218 from makyo/rel-icons-loadonce

To QA:

1. Start devel, watch the terminal
1. Deploy a bundle
2. Set one service in the bundle to 100 units
3. Watch terminal with simulator running; you should only see requests for rel icons when relation aggregatedStatus changes