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.