ColourManager.coffee: Store modified colours in localStorage
Game.coffee: next tick should be tickLength from Now

Previously the next tick was tickLength from the previous tick. If the game had been paused this would potentially be in the past, causing a tick to be run each animation frame.
Game.coffee: increase maxNeighbours, as it was too easy to cause 'nice' tangles to kill themselves
Tangle.coffee: fix bug where adding a source twice caused a NPE

We weren't adding a reference back to the tangle from the source node.
Drawing.coffee: Don't render the death zone.

In preparation for zooming and panning, we need to redo how the death zone is rendered. For now, just disable it, will add back later.
Add Rectangle.coffee

Defines a simple Rectangle data structure that can be translated  and scaled.
Add CanvasViewPort.coffee

The ViewPort allows mapping an arbitrary portion of our scene to a canvas. As the view port is manipulated the portion of the scene that is rendered adjusts accordingly. This will allow zooming and panning of the scene on the canvas.
Drawing.coffee: Use ViewPort to determine how to render scene.

Replace calls to the contexts draw methods with refactored methods. Add a translation step to map points in the scene to points on the canvas, based on what is in the viewport.
Game.coffee: Implement zoom and pan functionality
Merge branch 'zoom-and-pan'