Dashboard layout modifications

Upgrade jquery to 1.9.1

Add jquery.shapeshift plugin to layout dashboard widgets. http://mcpants.github.com/jquery.shapeshift/
Add rockstor_widgets.js, a registry containing a list of available widgets, their properties and default configuration options. Configuration options are 
- rows - how tall is the widget
- cols - how wide is the widget
- defaultWidget - whether this widget appears on the dashboard for a user with no saved dashboard configuration.

The layout is a 3 column grid, so if a widget has cols = 1, it will take up 1 column.

Modify dashboard configuration model to load and save a json list of widget names, positions and sizes.

Change renderWidgets in home.js to
- load saved dashboard configuration if it exists, or use the default one from rockstor_widgets. 
- render widgets in a list and use the shapeshift plugin for layout

Create addWIdget and removeWidget methods in home.js to enable addition and removal of widgets.
Modify DashboardConfig view save to trigger a destroy of shapeshift, add / remove the selected widgets, and call shapeshift again so that rendering the new widgets happens properly (https://github.com/McPants/jquery.shapeshift/issues/34)

Add jquery.flot plugin for graphs.
Modify the rendering methods in cpu_usage_widget to draw a stacked graph using the flot plugin.
Modify the cpu widget template and style so that the width and height of the graph placeholder can be set as a percentage, so that the flot resize plugin is able to automatically resize the graph.

Closes #51