WebGLRenderer: Making z sorting more stable. See #3315.
Updated builds.
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.
WebGLRenderer3: Opaque ans Transparent lists.
Improved VertexNormalsHelper and FaceNormalsHelper
Update several math documentation pages.

Added some info regarding the quaternion object, its applications and the purpose of its functions.
Added some info regarding the box2 object and its functions.