Update README.md
User Interface: Created Button class.
User Interface: Added a `tag` field to buttons.

The tag is passed on to listeners when their callback is called.
This allows multiple buttons to use the same callback, but have it
so that their respective calls are differentiable.
User Interface: Button constructor now takes dictionary

There were too many properties to not label them, now a Button must
be constructed like so:

    new Button do
      name: \name
      tag: 0
      size: 20

Also fixed the slight offset the typesetting added to the label that
made it appear to sit slightly lower than central.

Now that parameters come from a dictionary, must change `enabled` to
`@enabled` as the former is no longer available.
User Interface: Button now decides size by width, not font size.

This makes mking all the buttons the same size *a lot* easier.

Additionally, added the `leading` property to PointText. This deals
with the offset from center problem.
User Interface: Made Button#highlight, Button#reset public.

They are needed to implement toggle buttons.

Additionally, added the ability to trigger a button without notifying
(For the usecase where the listener is themselves triggering the
button from the callback function).
User Interface: Adding Buttons to App

Added the `Add Node` and Mode Toggling Buttons plus the stub functions
for their callbacks.
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.
User Interface: Using a Splat instead of an explicit concat.
User Interface: PrefixTree + Tests

Prefix Tree implementation with ability to filter by prefix, and
iterate through elements, in alphabetic order.
User Interface: Prefix Tree now also supplies keys in iterator.

Additionally, changed `filter-str` to `init-str` as I thought that
was a more appropriate name.
User Interface: PrefixTree Documentation.
Initial additions to the Node class - requires further implementing in Node_view and Wire
Added additional draw for Node itself
Must pass the position of the node to view class - used for initialising as well as when the mode is moved around the screen
Added node and wire view class bases
Swapped all tabs for spaces and added return groups
User Interface: Moving colours into their own file.

This should help with consistency across the app.