Merge remote-tracking branch 'origin/master' into canvasUI
Cleaned up code in graphics scene and node
Fixed up all errors and non-trivial warnings
Made public fields private, added getters/setters
Added method to traverse and measure tree

This will allow the recursive rendering method to allocate enough
space for its children.

Also fixed memory bug where a qset containing references to commit
node tree was being deleted.
Tree now renders repo tree without proper spacing

The rendering method assumes tree is symmetrical, and does not give
more space to larger subtrees yet.

No serious testing has been done
Changed file permissions recursively in dev directory
Minor code fixes, works
Merged master
Fixed redundant declaration of friend function
Substituted hard coded values for #define constants
Fixed up appearance of nodes and canvas

Nodes are now smaller, rounded in the corners, and have a less
offensive color. Text is now centered, white, and smaller. Some
cruft from the graphics-related functions was cleaned up.
Fixed one rendering issue with multi-level merge

Children of a node are only considered if they don't have a younger
(i.e. further from root) parent as well. That is, only the youngest
parent of a child is responsible for allocating space for and
rendering that child.
Crude arrows are now drawn between commits

Arrows have no head (and thus no apparent directionality), and attach
to the top left corner of each node.
Arrows between nodes now showing

Geometry still not quite right, depends on children
being below parents, and arrows are not redrawn when
nodes are moved
Arrows now follow nodes around as they are moved

Arrows now repaint themselves in the proper location as nodes
are dragged around, taking on correct new position and angle.
For now, all arrows attach at bottom/middle of parents and
top/middle of children regardless of relative location
Arrows attach to appropriate edges in the nodes

As nodes are dragged around, the arrows between then move to
keep them connected. Arrows now know which side of a node to
attach to according to the relative position of the two attached
nodes. That is, arrows no longer pass through the nodes, but take
a shortest path
Fixed bug related to node depth

GNodes can be visited multiple times during conversion from node,
and each time their depth is set based on the path that was taken
to reach them. This was changed so that the maximum depth would be
taken, so that children are drawn closest to their youngest parent.
Since the children drawing algorithm expects them to be drawn close
to their youngest parent, this fixes a bug that caused overlapping
nodes to be drawn
Arrow attachment site on node now moves smoothly

Improved arrow attachment algorithm to continuously adjust as nodes are
moved around, rather than select 1 of 4 sites based on node locations.
Added method for getting local branches to LocalRepoParser