Add in relation menu with ability to delete

Relations now provide a menu with all of the actual relations in the collection
available.  Clicking on the relation will bring up the delete dialog.

Proper positioning of the menu is not included in this branch, but rough
posititioning is.

Switching to quoted keys for window.flags

Lingering environment view assigned to global; adding template.

Responding to reviews; includes drive-by of destroying view in test_environment_view.js
Merge pull request #107 from makyo/relation-menu

Relations now provide a menu with all of the actual relations in the collection
available.  Clicking on the relation will bring up the delete dialog.

Proper positioning of the menu is not included in this branch, but rough
posititioning is.
Sandbox mode local charms upload preparation.
Merge pull request #110 from frankban/local-charm-prepare-fake

Sandbox mode local charms upload preparation.

Code reorganization to introduce a fake web handler
which will simulate the local charm upload process in
sandbox mode.

QA:
1) Bootstrap juju core trunk and deploy the charm with
this branch. One way to do it is:
juju bootstrap --upload-tools
juju deploy juju-gui
juju expose juju-gui
juju set juju-gui juju-gui-source="https://github.com/frankban/juju-gui.git local-charm-prepare-fake"
Another way to do the same is:
create a release (with BRANCH_IS_GOOD=1),
manually include it in a local the gui charm,
remove the stable release already in the charm,
and then run "make deploy".

2) Open the GUI, login and deploy a local charm
(zip drag and drop to the topology).

3) Ensure everything works well and deploy the local charm.

4) Now let's do the same in sandbox mode
(juju set juju-gui sandbox=true) or just "make prod"
in the branch.

5) This time, after dropping the zip, you should see
a notification message like
"local charm upload in sandbox mode not yet implemented".

6) Done. Destroy the environment.
replace relation icon pngs with svgs.
Merge pull request #111 from garyposter/rel_svg

Trivial change: replace pngs with svgs.  As a flyby, I also removed the old lbox cruft.

To qa, go to `http://localhost:8888/:flags:/relationCollections/` , add two services, relate them, and verify that you see the new green svg icon on the relation line.
When the user drops a local charm archive on the canvas, open
a basic inspector requesting the series they would like to
deploy this charm to.
Merge pull request #112 from hatched/select-series

__To QA__
- Drag a charm archive to the canvas
- It should pop up a basic inspector asking you for the series name you would like to deploy to

__Notes__
The inspector is very ugly and is intended to have new markup and styling done in a follow-up
Clean up the appearance of the local charm upload inspector.
Merge pull request #114 from hatched/style-local-inspector
Add a new test file at the end that verifies cleanup
Merge pull request #116 from mitechie/catch-hashes

Verify that there are no url hashes left when the suite ends. This should help catch cases where a test clicks on an anchor tag and causes a navigate vs running a halt() on the click event.
    Zip file handling in sandbox mode.
Merge pull request #115 from frankban/sandbox-zip

Zip file handling in sandbox mode.

This is another incremental step in the
implementation of the local charms upload
functionality in sandbox mode.

This branch introduces the zip.js library
as a GUI dependency. While in the process
of integrating it, I also added the steps
I followed in the HACKING file. 
In reviewing this branch, you can safely ignore
the following files: zip.js, inflate.js and
deflate.js. 

Note that the zip-utils.js file is instead 
a new internal module I added to collect
helper functions for working with zip
archives.

This does not add so much functionality 
except for the integration.

QA:
1) make debug;
2) Open the GUI and the js console.
3) Drag a zip containing a charm in the zip root,
   and click "upload":
  - you should see the "charm upload in sandbox 
    mode is not yet implemented" notification;
  - in the js console, you should also see a list
    of the three files we are interested in, included
    in the zip.
4) Do again setp 3 but this time with a zip
   including the charm in a nested directory
   (e.g. a zip like this is in 
   https://github.com/hatched/ghost-charm).
5) Now drag a zip not including a charm:
   you should see an error notification similar to
   "unable to find the charm configuration file".

Done, thank you!
Added support to the Viewlet Manager for Y.View instances to be passed in along side viewlets
Merge pull request #117 from hatched/view-viewlet-manager

No QA only code review for now.
Create the infrastructure to determine when a user is dragging a file over
the browser so that the application can react accordingly.
Merge pull request #119 from hatched/detect-drag-over

__No QA__
Menu with icons, aggregated relation status

Menu items with styles applied on per-endpoint basis.

lint.

Responding to review - doc-blocks around new functions
Fire destroy-inspector event when a zip is dropped on the canvas fixes #1278559