Created scaffold for moving the inspector instantiation code into browser.js
Sandbox mode: handle missing machine properties.
Ghost inspector deploys the charm and navigates the the new inspector url
Added test for rendering the inspector into the sidebar
Merge pull request #204 from hatched/prep-charmbrowser

#### To QA
- Use the `il` flag.
- There should be no search bar in the charm list.
- Drag a charm to the canvas and the inspector should open in the sidebar.
- Deploy the charm then click on the icon. The inspector should open in the sidebar.

#### Notes
This branch is missing some tests because they will be thrown away anyways as soon as the change state code is implemented.
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.