Allow zooms to go 200px past the edge.

This requires registering mousemove/mouseup on document, rather than the canvas. This is a bit scary! But the tests pass, and this is generally pretty well-tested code.

This gives a 200px buffer on any side of the chart.

Fixes #323.