Enable custom interpolation for animated zoom/pan

This enables animated panning like this: http://bl.ocks.org/mbostock/3828981

For now it isn't done by default because then d3 3.3 would be a hard requirement, but it is pretty easy to do:
```javascript
map.transition({
  zoom: 4,
  center: {x: -40, y: 45},
  interp: d3.interpolateZoom
});
```
Oh yeah.

There is an implicit assumption on the coordinate system's units because d3's algorithm assumes x, y, and z are all given in equivalent units.  So, a GCS using meters might need to be scaled here.  It isn't critical though, if the units are wrong it just won't zoom out as much.