Annotation movements synchronised with zooms

Changes relevant to #116.

No idea why the pull request is showing a massive list of old commits (I appear to be cursed with constant git fumbles). The "files changed" is showing the right things though. 

The only changes are a slightly modified `setZoom:atCoordinate:animated:` and a new custom `zoomToRect:animated:`