Add map.cancelPreRenderFunctions() to cancel ongoing animation.

FIXME:
  - interruptible (boolean) property on animation function?
  - keep map.removePreRenderFunction() ?