Improve DataTable

fixes #1382.

TODO:
- [x] make slick-grid independent of external styling (currently it looks different in html, server and notebook).
- [x] add support for (multi-column) sorting
- [x] make `DataTable` editable
- [x] restore auto-complete editor
- [x] fix sizing of `DataTable` widget
- [x] figure out correct column sizing (`forceFit` works inconsistently)
- [x] investigate display issues on the server (most likely server's bootstrap issue)
- [x] fix editors based on spinner to show buttons
- [x] implement cell formatters

TODO in a follow-up PR:
- [ ] add support for external editors (not directly embedded in cell's HTML)
- [ ] finish remaining editors (text, time, date, etc.)
- [ ] figure out why `select` ignores `keydown` event (prevents editor from using arrows)
There are two changes here. One is introduction of `Auto` keyword (one element enum). I updated other models with this. The other is addition of `|` operator. I'm not sure if this is the right way to go, because this way you can't change `help` (at least with the current design, which I think is wrong anyway). Also, currently the first argument must be a property **instance**, so `Int | String` won't work (must be `Int() | String`), this can be fixed by adding a metaclass to `Property`.