Start refactoring the callout handling chain

Signed-off-by: Blake Skinner <bskinner@mit.edu>
No longer recenter the annotation when showing a callout. Instead, just pan the view as little as possible to get the annotation into view and then pop it up.

Signed-off-by: Blake Skinner <bskinner@mit.edu>
Backport a few of the general ideas from the '3.4.1/bugfix/map-refactor' to improve the layer synchronization

Signed-off-by: Blake Skinner <bskinner@mit.edu>
Fix the touch handling and improve the callout support. Still not always properly handling taps but the annotation should be properly panned to (if needed) and then a callout will be displayed.

Signed-off-by: Blake Skinner <bskinner@mit.edu>
Merge branch '3.4-dev' into 3.5/feature/dining