Sandbox mode: handle missing machine properties.
Fix the inspector styling to fit in the left-hand-side panel.
Merge pull request #203 from frankban/sandbox-more-machine-info

Also completed the addMachines/destroyMachines delta
stream implementation in the fake backend.

Removed the ambiguity of having a machine_id attribute
in juju-core sandbox.

QA:
- make devel/debug/prod;
- open the JS console;
- add new machines/containers with the following command:
    app.env.addMachines([
      // A new machine with default properties.
      {}, 
      // A new trusty LXC inside a new machine.
      {containerType: 'lxc', series: 'trusty'}, 
      // A new customized machine
      {constraints:{'arch': 'i386', 'cpu-cores': 4, mem: 2000},
       jobs: ['JobHostUnits', 'JobManageEnviron']}
    ]);
- ensure four machines were added, and they contain the expected attributes,
  by running the following: `app.db.machines._items`
- now force the removal of machine 1: also the contained LXC should be
  destroyed: `app.env.destroyMachines(['1'], true);` and then
  `app.db.machines._items` again.
Done, thank you.
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.
Adding ellipsis after 10 charms in a bundle

Tests pass now.
Lint passes.
Added a base for the machine view include a reusable header widget.
 Fix default constraint values when scaling units.
Merge pull request #212 from frankban/scale-up-constrains

Also fix the memory unit used (s/GB/MB).

QA:
- make devel;

- deploy a service, do not change constraints;
- scale up the service: you should see the constraints
  message indicating the default constraints will be used;

- refresh and deploy another service customizing constraints;
- scale up the service: you should see the message indicating
  constraints are set for this service, including CPU power and
  number of cores.