Add cancelAnimationFrame method, address bugs related to stopping the animation

Prevent multiple calls to play creating more than one executing loop,
and resolved issue that FPS was not applied immediately; both as the
timer object was never set.
Make animations stop immediately rather on next frame iteration -
resolves issue with needing to call play twice twice after calling
'stop' twice.