Renamed ImageButton to PanelButton. Added a DrawButton class.
Factored out Icon and Text content from PanelButton into a mixin named IconTextButtonContent. Renamed BasePanelButton to PanelButton and renamed PanelButton to IconTextPanelButton that now uses the new mixin.
Added a Checkbox component. Added drawing utilities. Fixed a bug in Canvas where some methods should have been returning values but were not. Fixed a bug in Button where you could tab away and not update the UI.