IPEP 23: Backbone.js Widgets

## Description
Adds backbone.js layer on top of comm layer to enable the creation of modular widgets.
See [IPEP 23](https://github.com/ipython/ipython/wiki/IPEP-23%3A-Backbone.js-Widgets) for a detailed description.

## Organization
- Widget manager, base model, and base view `/ipython/IPython/html/static/js/widget.js`
- Javascript models and associated views `/ipython/IPython/html/static/js/widgets/*.js`
- Base Python widget `/ipython/IPython/html/widgets/widget.py`
- Python widgets `/ipython/IPython/html/widgets/widget_*.py`
- Example and tutorial notebooks `/ipython/examples/widgets/*.ipynb`
- Unit tests `/ipython/IPython/html/tests/casperjs/test_cases/widgets*.js`

## Examples

Examples and tutorials are included in this PR's contents (as seen above)  [direct link](https://raw.github.com/jdfreder/ipython/widget-msg/examples/widgets/)

## Included Widgets
- CheckboxWidget
- ToggleButtonWidget
- ButtonWidget
- ContainerWidget
- PopupWidget
- FloatSliderWidget
- BoundedFloatTextWidget
- FloatProgressWidget
- FloatTextWidget
- ImageWidget
- IntSliderWidget
- BoundedIntTextWidget
- IntProgressWidget
- IntTextWidget
- AccordionWidget
- TabWidget
- ToggleButtonsWidget
- RadioButtonsWidget
- DropdownWidget
- SelectWidget
- HTMLWidget
- LatexWidget
- TextareaWidget
- TextWidget