The Buttons can now be managed by a ui.Supervisor and be notified when
the mouse enters or leaves their bounding box and handle click events.
Current event handlers supported:
* MouseOver
* MouseOut
* MouseDown
* MouseUp
* Click
Each of those events are only fired when the state of the event has
changed, i.e. the first time the mouse enters the widget MouseOver is
called and then when the mouse leaves later, MouseOut is called.
A completed click event (mouse was released while pressed and hovering
the button) triggers both MouseOut and Click, so the button can pop
itself out and also run the click handler.
* The shell now supports an "eval" command, or "$" for short.
* Runs it in an Otto JavaScript VM.
* Some global variables are available, like `d` is the Doodle object
itself, `log`, `RGBA()` and `Point()`
* The shell supports paging through input history using the arrow keys.
* Added an initial Main Scene
With Labels and Buttons so far.
* Labels are pretty much complete, they wrap a render.Text and have a
Compute() method that returns their Width and Height when rendered
onto an SDL Surface.
* Buttons wrap a Label widget and Compute() its size and takes that into
consideration when rendering itself. Buttons render themselves from
scratch in a "Windows 95" themed way, with configurable colors, border
widths and outline.