RFC: Interactive SVG Frontend

This adds some basic zooming and panning capabilities to the SVG front-end:

- Zoom in to blocks by double clicking on them.
- Pan by click-and-drag on any block.
- Zoom out by double clicking on the background.

An example output can be found [here](http://jsbin.com/vayatuco/1/edit?output)

The Snap.svg library is currently used for animations and adds about 70KB to the output.  If we don't care about smooth transitions, I can remove the library and rework the code pretty easily.