Added fancy wires

and a small bugfix on setting the wire styles
Changed updating behaviour

Now set-start and set-end can be called in any order, and used to move
wires around. (like before but I broke it)
Change pan behaviour

To pan you now actually have to grab, there's a test to detect if
fingers are visible (no fingers visible on a fist).

This means you can move your hand in safely and then grab, and let go
when you want to stop.  This doesn't provide protection from panning by
someones head.

Also moved the zoom tolerance constant to where it should be.
Merge branch 'master' into cursor
pointers-changed: Adding the pointers changed function

Also added a cursor layer above all others.
Pointers Changed: Responding to Code Review

Added documentation for window.insert-cursor
Make the pointers-changed function more functional.
Pointers Changed: Fixing typo from rebase

Forgot to include the end square bracket from the rebase.
Added fancy wires

and a small bugfix on setting the wire styles
Changed updating behaviour

Now set-start and set-end can be called in any order, and used to move
wires around. (like before but I broke it)
Added richer pointer information from leap

Added a helper class PointInfo which is used for sending information to
the window via pointers-changed method.

Altered the leap cursor to send the new data type.

Preliminary changes to window.ls to show off the new features.
Pointer Styling now in view_style

Added pointer styles to view_style, as well as a method for converting
PointInfo -> paper.Shape so they can be displayed.

Also tweaked leap_cursor to help avoid detection of 'spurious' fingers
when panning.
Fixed conflicts
Interact Nodes: WireView recycling wirepath.

Making the WireView use the same wirepath in each call to _make-wire so
that it stays in its intended position in the view heirarchy.
Interact Nodes: BUGFIX: Zooming.

The wire being in a separate layer (specifically, having a different
center) to the view layer caused problems in scaling, so the wires are
now all inserted into a group in the view-layer, and everything else is
added above them.

Additionally, adding elements after scaling occurs also causes issues,
so the system now keeps track of the total scale factor and applies it
to all incoming child items.
Interact Nodes: Moving pointers-changed to be with public methods

And documenting it.
Interact Nodes: Added ability to add (dummy) nodes

Clicking on "Audio" and "Numerical" in the filter list will spawn a new
such node in the middle of the screen.
Interact Nodes: Changing Selection styles

Out-port styles are now the same as inport styles, and the datatype
colours are now preserved upon selection so that nodes can still be
identified by their type signature.

Additionally, wires now respond to being connected by turning green.
Interact Nodes: Added ability to select wires and nodes.

When a Wire is selected, selecting it again removes it.
When a Node is selected, subsequent pan events are used to move just the
node.
Interact Nodes: Cleaning up logic in select-at method.
Interact Nodes: Implementing moving nodes.

 * Node#register-output is now symmetric with Input#register-input so
   that the source node is aware of the wire it's sending down.
 * Fixed bug in WireView#_make-wire where WireView.startpos and
   WireView.endpos are not kept in sync with the translations.