Node.coffee: Use @size() instead of @weight to render nodes.

Weight was used throughout the code for both rendering and determining
distance between nodes. This has been replaced with size in every case.

Size is determined in part by how many connections a node has. More
connections means a bigger node. Max node size was adjusted to compensate.
utils.coffee: Introduce squaredDistanceBetween and vertexAngle utils

squaredDistanceBetween avoids a square root unnecessary in some calcs.

vertexAngle finds an interior angle of a triangle, as defined by three points.
QuadTree.coffee: Add ability to remove objects
Tangle.coffee: Remove nodes from the QuadTree when they die
Fix newlines at end of files
Tangle.coffee: Improve choices when growing

If we connect to another node, return it instead of the new node,
so that it becomes active if the user is extending the graph.

Only allow nodes in front of us to become connected. This will be extended
to try and be smarter about which of the nodes in front of us is the best
choice to connect to.
Drawing.coffee: Render dying nodes in a separate render cycle

This allows for dying effects to be applied. The main render cycle
for a Tangle renders everything with the same colours.
TODO tease these into nicer commits.

Lots happened here.
- Added fog of war to the rendering
- refactored rendering to use multiple contexts that we can layer
- Added sound effects
- Added bower for some dependencies. requires a 'bower install'
gitignore: Add bower_components
Add ColourManager and ability to choose colours

This should make it easier to design colour schemes.