Restructured widgets and widget settings

The code isn't currently used in other parts of iChrome
but should be completely functional.

The commit adds Backbone.DocumentModel which will be used for tabs and
columns.

This is also the first commit that uses JSDoc style comments, from now
on I plan on using them for everything.