Grid columns (feature)

Feature branch for #14 and #23

Desired behaviour:
* [ ] you can specify a `columnsPerGroup` option to split the grid into sections with that width in cells
* [ ] you can specify a `groupSeparatorWidth` option to control the width of the separator between sections
* [ ] you can specify a `sectionBackground` and `separatorBackground` options to control the background colour of the section and separator
* you cannot ever place an item on the grid so that it crosses over the section separator
  * [ ] add
  * [ ] initial layout
  * [ ] resize grid
  * [ ] reize item
  * [ ] drag item
* [ ] when you have an empty section in the grid, it will be deleted automatically
* when you drag an item over a section:
  * [ ] first, the grid will try to make room for that item in the section
  * [ ] if that fails, all sections starting with the current section will be pushed to right (and their content preserved), and the dragged item will be placed in the remaining empty section