Fix the inspector styling to fit in the left-hand-side panel.
Merge pull request #205 from huwshimi/style-left-inspector

Fix the inspector styling to fit in the left-hand-side panel. To QA you'll need to use /:flags:/il and deploy a charm.
Added safari back into CI
Move state out of browser.
Remove the safari browser warning
Merge pull request #206 from hatched/enable-safari-ci
Merge pull request #207 from kadams54/state-module

Try some stuff that changes the state: search in the sidebar, view charm details, minimize the sidebar, click on home, etc. Make sure nothing goes boom.

**Note:** some of the naming leaves something to be desired (i.e., `browser.state.view`, which is not actually a view, but rather the state of the current view) but that'll be addressed that in a subsequent branch.
Build custom D3 for our usage

Use the D3 build system, SMASH, to build a custom D3 with our
unscaled pack layout and only the modules we need.

QA in devel, as well as in a real env (suggest deploying several
services from the command line to test the pack layout,
cs:~hatch/precise/failtester is a lightweight one; test using
http://jujugui.wordpress.com/2013/10/15/if-you-want-to-run-a-custom-gui/
or similar)
Fixing D3 cruft in tests.
Responding to reviews: comments updated.
Merge pull request #208 from makyo/make-d3

Use the D3 build system, SMASH, to build a custom D3 with our
unscaled pack layout and only the modules we need.

QA in devel, as well as in a real env (suggest deploying several
services from the command line to test the pack layout,
cs:~hatch/precise/failtester is a lightweight one; test using
[something like this](http://jujugui.wordpress.com/2013/10/15/if-you-want-to-run-a-custom-gui/))
Clean up State API.

Now that State is moved out of Browser, clean up the API, pull out
related tests, make sure everything is covered (new tests), and
generally prep State for use throughout the app.
Merge pull request #209 from kadams54/state-module

Plunk around with the service inspector, hit refresh, ensure that everything re-renders properly (i.e., the inspector is still displaying the proper service). Repeat for view charm details. Give the public API for State extra scrutiny; methods are:

* `getCurrent(field)` - get the specified field for the current state
* `getPrevious(field)` - get the specified field for the previous state
* `hasChanged(field)` - check to see if the field differs between previous and current states
* `getUrl(field)` - generate the proper URL based on the current state (not called directly; subscribes to `viewNavigate` event)
* `loadRequest(request)` - set the current state based on the request passed in
* `save()` - save the current state back to the previous state

Note that the API may be further simplified as we move forward with locating State someplace else other than as a field off Browser. Personally, I'd like to see the last two methods dropped so that clients don't need to actively manage State; it should be more intelligent about when it needs to pull in a new request or save off the current state.