Fixed the animation end event.
- Small bug was causing animations to be processed when they had not been started. This was incorrectly causing the end event to be fired continuously which inadvertently broken animation queues.
Bug fixes in Animation3D

The registerListener method now checks whether the same listener was
already added.
Added a check in the update method to prevent multiple end events from
firing.
Fixed an inverted interpolation bug.
Merge pull request #604 from AndrewJo/animation-rewrite

Bug fixes in Animation3D
Merge commit '2af9c159c3f4e1f7fc2f3c19375157325becf3f4' into task-queue-dev