improve handling of unspecified orders in Euler.setFrom*() functions.  Fill out Euler.clamp().
implement initial Euler.reorder() function and remove Euler.alternativeSolution() per @WestLangley.
added documentation
Added Euler unit tests, fixed one bug in Euler, one bug in Rotation.
remove Euler.clamp and Math.fpModulus per @WestLangley.
Merge remote-tracking branch 'cjshannon/dev' into dev
WebGLRenderer3: Added normals, programs cache, fallback for program compiled with errors and basic support for ShaderMaterial.
Brief:Implementing raycasting for dynamic buffergeometry
Summary:
BufferGeometry allows faster loading (direct buffer loading)
but not ray casting.  This adds that (if it is dynamic)
WebGLRenderer3: Added MeshNormalMaterial support.
Refactored Curve.js to individual classes (#3378)

Split /src/extras/core/Curve.js to
/src/extra/curves/*

LineCurve
QuadraticBezierCurve
CubicBezierCurve
SplineCurve
EllipseCurve
ArcCurve
LineCurve3
QuadraticBezierCurve3
CubicBezierCurve3
SplineCurve3
ClosedSplineCurve3
Updated builds.
Merge remote-tracking branch 'kevinoe/BufferGeometryRaycast' into dev
Cleaned up Raycaster BufferGeometry implementation.
There are many allocations that would still need to be removed though.
Updated builds.
build.py: Adding \n at the end to avoid breakage between files.
Added VertexNormalsHelper and WireframeHelper. Tweaks to BoxHelper and FaceNormalsHelper.
Updated builds.
Uncommented the right code in helpers example.
WebGLDeferredRenderer: Removed global camera dependency. Fixes #3120 and #3433.
WebGLRenderer clean up.