Refactor animation for easier/faster testing

Animation tests were super slow. We could not mock process.nextTick so we were actually running the animations which took forever in some environments. We now just unit tests things within the Animation() without actually running an animation.