Embrace flexible box model
Added baseline and stretch
Renamed *Widget to *,
depracted old names.
Fix interact tests for rename
adding hbox and vbox

Conflicts:
	IPython/html/static/widgets/js/widget_container.js
	IPython/html/widgets/widget_container.py
Make HBox and VBox helper functions
Added some doc strings on the widgets.
Also address the comments Matthias left me.
Added incompat for name deprecation.
Rebase cleanup
Automatically open a comm on creation of widgets

This will immediately create a model on the javascript side when a widget is created.  This means that, for example, a widget that only interacts with its model can work without "displaying" it.
Don't register comm with comm_manager if comm_manager is undefined
Check for null session in _publish_msg and _session)default
Make the widget comm attribute more straigtforward

Instead of automagically instantiating a comm when it is accessed, require a call to open().  This makes the comm attribute much less magical, and hopefully more understandable.
allowing widet id to be set externally
s/Container/Box
Added comment about box rename.
Filenames s/container/box
JS: close WebSockets when killing kernels

by calling Kernel.stop_channels() in Session.delete and Kernel.kill
handle undefined or closed zmq_stream in on_message

can happen if a message is waiting in a pipe and the web socket is closed before the message is handled.

And give ZMQChannels a nice repr with their kernel ID
avoid race condition when deleting/starting sessions

javascript doesn't guarantee the order of AJAX requests,
so we give `Session.delete` and `Kernel.kill` a callback signature.

Changing the kernel type calls `Notebook.start_kernel`,
which terminates the previous session, if defined,
before starting the new one.

A flag is stored, to prevent multiple simultaneous attempts to start sessions, raising a SessionAlreadyStarting Error,
preventing the spec_changed event from firing.