Add ability to skip nav on tabview clicks.

The tabview headers are anchor tags. By default, clicking an anchor tag will
cause the url to update. In tests, this causes issue. This adds a flag to the
tabview widget that enables halting the click event so that we can verify all
effects except the url hash change.

This might also prove useful if we need to reuse the tabview widget, yet not
allow for an instance to effect url state.

QA:

Run the tests and yay no hash left once they're complete.
Merge pull request #97 from mitechie/no-hash-changes

The tabview headers are anchor tags. By default, clicking an anchor tag will
cause the url to update. In tests, this causes issue. This adds a flag to the
tabview widget that enables halting the click event so that we can verify all
effects except the url hash change.

This might also prove useful if we need to reuse the tabview widget, yet not
allow for an instance to effect url state.

QA:

Run the tests and yay no hash left once they're complete.
Remove the bws- prefix on charm/bundle tabs.

- They are ids, so we have to watch out for collisions. I don't currently see
any, but if we hit one we might have to migrate the names over. I did not do
this here so that we can keep things backwards compatible with a simple rule
of s/bws-// for the name of the tab.

QA:

Go to a charm and select a tab. The url should be updated to show the #<tab>
and it should not have any bws- in it.

Paste that url into a new window and it should route back correctly for you.

Add a bws- in front of the hash and it should auto remove it and still route
you to the correct tab on the correct charm.
Merge pull request #98 from mitechie/no-bws

- They are ids, so we have to watch out for collisions. I don't currently see
any, but if we hit one we might have to migrate the names over. I did not do
this here so that we can keep things backwards compatible with a simple rule
of s/bws-// for the name of the tab.

QA:

Go to a charm and select a tab. The url should be updated to show the #<tab>
and it should not have any bws- in it.

Paste that url into a new window and it should route back correctly for you.

Add a bws- in fromt of the hash and it should auto remove it and still route
you to the correct tab on the correct charm.
Merge pull request #100 from benji-york/open-close-sidebar-2

...when large display elements take over the screen.
Deploy the ghost inspector after a successful local charm upload
Merge pull request #99 from hatched/local-charm-ghost

__To QA__
Deploy a real Juju 1.17.2 environment using the most recent GUI charm.
Drag and drop a zip archive of a charm with the files being at the root directory.

__Local charm tip__
- Visit https://github.com/hatched/ghost-charm and download the Zip.
- Extract the charm and then repack without the contents being nested in a folder (Bug will be fixed in Juju 1.17.3).
Improve GUI login text.
Merge pull request #103 from frankban/improve-login-text

Also fixed a typo in the git process docs, and removed the no longer used defaultViewmode config option.
add the ability to use local cached fonts, per bug 1274955
Add zoom message.

* Improved tests.

* Refactored for testability. Updated messages. Completed tests.

* Fixed lint.

* Changes from review.

* Added detach for resize event.

* Fixed typo.
Merge pull request #106 from makyo/develop

This adds a message when the viewport is 1024 pixels or below. There are tests for the message creation, but not for the resize/os functionality.

Rebased and merged for huwshimi

* Improved tests.
* Refactored for testability. Updated messages. Completed tests.
* Fixed lint.
* Changes from review.
* Added detach for resize event.
* Fixed typo.
Merge pull request #104 from garyposter/localfonts

Minimal QA:
- run `make devel`.  Start chrome and open the inspector's network tab.  Open the GUI.  Verify that you are not loading any files from Google, but are loading fontfamily.css from the local files.  Verify that the charm browser tabs, the onboarding help, and the inspector look fine.
- run `make prod`.  As before, but verify that you are now loading font CSS from Google.
- run `make devel`.  Verify that the browser looks OK in Firefox too.

Note that on Ubuntu, the fonts are not actually downloaded because Ubuntu includes them.

Preferred additional QA:
- Try on IE 10, Mac OSX Chrome, and Mac OSX Firefox.  Verify that the fonts are downloaded as needed and that things look OK.
- Try Safari too.

Super-duper awesome QA:
- Deploy this in a charm and do the same browser tests.

In my experiments/QA, and unsurprisingly, the Google CDN has much better speed than the local cache when running against EC2, and the difference is quite noticeable and problematic.  Therefore, I expect that the charm will default to cachedFonts: false, and charm configuration will have to turn it on explicitly.

Thank you!
Provide the idea of a demo mode to the gui.

- Enable passing a url param to the api calls for getting icons.
- This will enable manually overriding the icon safety checks for the purposes
of a demo which has been sanity checked by the presenter.
Added a notification if you try and use local charm upload when your Juju version does not support it.
Merge pull request #102 from mitechie/demo-mode

- Enable passing a url param to the api calls for getting icons.
- This will enable manually overriding the icon safety checks for the purposes
of a demo which has been sanity checked by the presenter.
Merge pull request #105 from hatched/local-charm-not-supported

__To QA__
- Downgrade your version of Juju to 1.16.x version.
- Deploy the ~juju-gui latest charm.
- Set juju-gui-source to this branch.
- Try and deploy a zip archive of a charm and a notification should show.
use custom images for relation icons
Added a flag to enable the databinding functionality in the Viewlet Manager so that it can be used without databinding
Merge pull request #108 from garyposter/rel-indicator

This simply hooks up relation icons per the design.  If you want to QA, turn on the feature flag (`http://localhost:8888/:flags:/relationCollections/`), make a relation, and verify that the green circle shows up.  The aggregatedStatus function is just a stub at this point, so it will only ever be green in this go-round.