Return a requestID from requestAnimationFrame, add cancelAnimationFrame.

Mentioned by @emackey in a comment on PR #870.  Our helper functions should match the standard in features by returning the requestID through, and allowing cancellation of a request.  This works even when emulating for legacy browsers because setTimeout / clearTimeout work equivalently.