Fixed bug causing slowdown with overlapping nodes

Arrow calculations were still being done even when nodes overlapped.
This was not resulting in anything being rendered on the screen but it
was causing a really bad slowdown
Branch labels now move around correctly

Branch labels, when moved, now display similar behavior to nodes and
continuously redraw their arrow
Merge remote-tracking branch 'origin/master' into canvasUI
Fixed bug with parser not refreshing

Parser was not updating return tree when repo was updated because of
failure to free memory
Changed some value types to pointers

This allowed us to erase and reallocate them when refresh is desired
Branch labels now move with nodes

When nodes are dragged, their associated branch label moves along with
them. When branch labels are moved, they still move free relative to the
node
Improved behavior of branch labels

Now ALL labels move along when their node is dragged, and their line is
given a low z index so it does not cover other nodes or labels
Changed vectors to sets in GCommitNode

Now, sets are used for children and parents of GCommitNode, while
eliminates duplicated children
Improved the way that branch labels are drawn

Branch labels are now drawn on alternating sides of the children
of a node. This somewhat reduces clutter, but still is far from
acceptable
Added stub to detect collisions, fixed up bugs

Various minor code fixes, no new functionality
Removed crufty logging statement
Minor bug fixes
Merge branch 'canvasUI'