Separate the display from the models on the python side, creating a BaseWidget class.

Conflicts:
	IPython/html/widgets/widget.py
Intermediate changes to javascript side of backbone widgets
Remove the automatic _children_attr and _children_lists_attr.

When serializing, any Widget object is encoded as its comm_id.  The view should know how to deal with the attribute, and should know that the attribute is a comm_id.
Remove unused code and debugging statements
Change accordion to use a children attribute
Delete unnecessary check for comm object
Move all references to cells to the view objects.
Make updates more granular for widgets
Store views in the models and store child views in the views
Delete the snapshot message handler
Note todos for widgets
fix a handle_status handler
Fix visible attribute for the very first render
Make sure containers transmit the children; take care of case where children is possibly empty.
log the error stack for a kernel javascript error message
Move some Widget class references to BaseWidget
General cleanup of base.js, including indentation fixes and adding view callbacks to the save options dictionary.
Get the add/remove css classes working
Live updates for children automatically change container views.

Since traitlets does not trigger events when list elements are changed, these changes are triggered only when the entire children element is reassigned.
Fix the python side of the add/remove class functions to send custom messages