Add option to hide the buttons in the canvas

Adds a showButtons parameter to the constructor.  Passing false to it
will hide the buttons in the canvas, unless the demo is playing. This
comes handy when adding controls outside the canvas.  The default is
true, so the current behaviour is not affected.
Wrap button selection in a method @selectButton

So it can be overriden from the outside to update external controls.
Merge pull request #6 from manuq/external-controls

External controls