[RFR] Add Theming support

- [x] Add support for custom CSS classes in the datagrid columns

```js
myEntity.listView()
    .addField(new Field('title').cssClasses(['foo', 'bar']));
```

- [x] Add support for custom CSS class functions everywhere

```js
myEntity.editionView()
    .addField(new Field('title').cssClasses(function(entry) {
        return entry.values.needsAttention ? 'bg-warning' : '';
    }));
```

- [x] Add ability to customize template for each view

```js
var myEntity = new Entity('foo_endpoint');
// customize list view template
myEntity.listView().template(require('text!./path/to/list.html'));
// continue myEntity configuration
// ...
app.addEntity(myEntity);
```

- [x] Add ability to customize template for each view for the entire application

```js
var myTemplate = require('text!./path/to/list.html');
app.customTemplate(function(viewName) {
    if (viewName === 'ListView') {
        return myTemplate;
    }
})
```

- [x] Add Theming documentation

Closes #138, #118, #110.