User Interface: BUG FIX

Renaming DEFAULT_BTN -> BTN_DEFAULT
User Interface: Adding UI Layer

Added an extra layer to the Window, the UI Layer, for UI chrome to
reside in.

Modified the code in the App class to put buttons etc into the UI
Layer.

Found a bug: the previous insert-children methods were not working
because they were supplying the item to be inserted as the index
(and that was failing silently) Fixed now by removing uses of
varargs, and instead supplying lists.
User Interface: Buttons take a highlight colour.

Buttons now take an optional highlight colour upon initialisation.

Also modified Button#set-listener to take a function, instead of an
object and a key for a field therein.