Expose d3 transition to allow topology to be changed after initial render
Added 2 plugins:
1) background: renders image as an SVG layer behind topology
2) userMovement: captures click+drag (pan) and scrollwheel (zoom) movements, and uses them to perform SVG transforms on all SVG layers.
This is much faster than rerendering the topology using a D3 transition.
Touch events are flaky, and mobile devices probably don't have enough CPU to make them smooth.
The combination of a projection and a SVG scale means labels are out of place,
 we might need to rewrite the projection to expose the values rather than obfuscate them in a function.
It is also necessary to have these values to perform edge boundary calculations on zooming.