Add Controllable mixin

This adds a new `Controllable` mixin.

It allows blocks to specify custom UI elements that will be placed in the lower left corner of the block by default.
To do so, blocks will have to provide the following options:

    controllable: true,
      controls: {
        'cmd-name': handlerFunction
    }

To provide new icons for the custom UI elements, place a file `cmd-name.svg` into `public/images/icons/src` and re-generate the webfont via `grunt webfont`.

Example usage in my custom table block:
![Table block](http://i.imgur.com/Sumt78f.gif)
Source: https://github.com/jbaiter/sir-trevor-js/blob/tableblock/src/blocks/table.js