Rework the viewport animation functions

- Changes pan, zoom and centerOn to work with Crafty.easing. (Time based instead of tick based.)
- Makes sure the zoom animation is nice and smooth.
- Fixes a bug in how scale is treated by the DOM/Canvas renderers
- Adds a new "StopCamera" event for stopping any extant camera animation
- Fires an "CameraAnimationDone" event when a camera animation completes
- Changes documentation to reflect code
- Adds tests for zoom, and fixes some issues with the tests that relied on them being run in a particular order

Breaking changes:
- time base instead of frame based duration
- Changes pan to head to a point, rather than by specifying an axis