Build zoomable and pannable SVG canvas

Thanks, let me think about how to structure this.