User Interface: Updated PaperJS and that changed the behaviour of 'leading'.

Now the `leading` propery of text is set to half their font size to
make their vertical alignment central.
User Interface: Preliminaries for FilterList

Started work on FilterList class:
 *  FilterList now displays rows of data from its datasource.
 *  ... can be made to appear and disappear

Created a (private) RowFactory class, which is used by the FilterList
as a pool of Row views to display.

Created a (private) SimpleRow class to represent the standard Row view
for the FilterList.

Additional Changes:
 * PointText:
   - Font size needs a string, not a number
 * Now using the 'px' suffix on numerical values that are being used
   as pixel quantities.
 * For FilterLists, `list.set-data` must occur *after* the list has
   been laid out (the first call to `list.expand`), otherwise the
   additional row views mess the layout up.
 * When specifying groups `clipped: true` must occur after the
   children have been specified, otherwise the clipping does not
   occur.
 * PrefixTree keys *must* be provided all lowercase characters
   ([a..z]*) As that is the range that the iterator checks.
   (This should probably be fixed in the future).
User Interface: Fixing Button Font size.

Button font size is now actually set (See previous commit message
about the PointText size having to be a string).
User Interface: FilterList Row now highlights on mouseover.
User Interface: Rows can now be selected.

Selected rows are highlighted green, and then send their data to the
`on-select` callback, which is set using `set-listener`.

Also changed behaviour such that if the mode is changed, then the
Node list is hidden.
User Interface: Updating the documentation to reflect changes to code.