Converted Euler rotations to Quaternions

Converted local Euler rotations to Quaternion based rotation to avoid
gimbal lock.
Added synchronization checks to all uses of mChildren and mPlugins

Signed-off-by: Jared Woolston <jwoolston@tenkiv.com>
Update Animation3D.java

Minor change to avoid a flashing effect when using Animation3D.REVERSE + Animation3D.INFINITE
Merge pull request #525 from Cedroux/patch-1

Update Animation3D.java
Merge pull request #521 from AndrewJo/master

Converted Camera's local rotations from Euler method to Quaternions
Converted to CopyOnWriteArrayList

Converted mChildren, mPlugins, mFilters to Collections.synchronizedList
wrapped CopyOnWriteArrayList and removed all synchronized statements
related to these members in RajawaliRenderer.
Extended concurrency protection

Extended to include mLights and mChildren of BaseObject3D. Note that
this changes the method signature of addLights() in BaseObject3D,
AMaterial and AAdvancedMaterial.
Merge pull request #524 from Tenkiv/concurrency

Added synchronization checks to all uses of mChildren and mPlugins