Drive by cleanup.
Made the unplaced unit token draggable
service unit token now fires events to notify the machine panel view that it's being dragged or not
Makes the container token into a drop target for the unplaced unit token
Moved the drop target methods into a shared extension file
Added tests for the unplaced unit draggability
Renamed the drop extension to be better representative of where it works.
Dragging an unplaced unit now turns the column headers into drop targets
If the user hasn't selected a machine then they can only drop on the machine column
Added tests for the drop target UI
Don't re-render panel when hiding notification.

All we need is to clear the notification, so stick to that.
Usability tweak to improve notifications.
Fixed conflict issues
Merge pull request #303 from hatched/draggable-unplaced-unit

This branch makes the unplaced unit token draggable and droppable on the container token and container header. 

#### To QA
- Use the il and mv flags
- Run 
```
ecs = app.env.get('ecs');
cb = function() { console.log(arguments); };
app.env.addMachines([{}], cb);
ecs.commit(app.env)
```
- You should now have a machine in the machine column
- Drag a service to the canvas and switch back to machine view
- You should now have an unplaced unit
- Select the machine (It should now show it's constraints)
- Drag the unplaced unit token onto the 'New Container' header drop target
- Click Deploy in the deployer bar
- Click Confirm in the deployer bar
- Click the machine, a container should now be listed in the third column
Merge pull request #313 from kadams54/fix-deployer-notifications

### QA

To test:

1. Drag and drop the first charm.
2. Click the Deploy button and verify the summary is correct, but don't confirm. Cancel or close the summary.
3. Drag and drop the second charm.
4. Click the Deploy button - used to be you'd get a "no uncommitted changes" message. Now you'll now see the expected list of two services and two units.