RotateAnimation3D added
Removed deprecated constructor
Placed all the field variables on their own lines for consistency
Fixed bug when using multiple spot lights

This change improves the light calculations for `SpotLight` in each of
the base materials so that multiple spotlights can now be used.
Issue #591 Incorrect texture coordinates
Merge pull request #592 from Davhed/spot-fix

Fixed bug when using multiple spot lights
EllipticalOrbitAnimation3D added
Merge pull request #1 from AndrewJo/animation-rewrite

Support for RotateAnimation3D and EllipticalOrbitAnimation3D
#578 Added ScaleAnimation3D
#578 Added BezierPath3D
#578 Added CatmullRomPath3D
#578 Added ColorAnimation3D
#578 More updates
- Normalized the formatting of all animation classes.
- Updated ColorAnimation3D setTransformable3D as I did not like what I previously had using setBaseObject3D. I feel the new implementation is more sensible.
#578 Added Animation3DQueue
Merge pull request #594 from ToxicBakery/animation-rewrite

Animation rewrite
Animations could potentially crash due to removing or adding listeners during playback. Instead of a complex queue system I opted to just throw exceptions if changes are made during playback.
Merge pull request #597 from ToxicBakery/animation-rewrite

Animations could potentially crash due to removing or adding listeners during playback.
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