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.