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`.

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