Implement arrow drawing on canvas

Add arrow head onto lines connecting commit nodes, using line
angle to determine correct polygon to render.
Redraw scene when nodes are moved

Schedule a repaint of the scene when any node is moved.
The results is that all arrows are updated to point to
the newly moved node.
Implement all ConnectionLine attachment modes

Implement all attachment modes for connection lines and apply them
to commit nodes, so that destination nodes attach smoothly and origin
nodes snap to the center of each face
Clean up code and comments

* Optimize and organize imports
* Fix typos in comments and code
* Prefix non-public members with underscores
* Improve comment quality
* Ensure proper use of whitespace
* Run lint and fix fixable issues