Moved bilinear filtering of shadow maps into the shader. Previously, the filtering on the shadowmap was set to linear outside of the shader and this doesn't work for filtering a depth comparison. For PCF, the filtering needs to be done post-depth-comparison. i.e. in the shader.
Merge remote-tracking branch 'remotes/MiiBond/dev' into shadow-filtering
Added shadow map type definitions and replaced shadowMapSoft boolean on the renderer with shadowMapType. The default type is THREE.PCFShadowMap, which amounts to the previous default of shadowMapSoft = true. A new type, THREE.PCFSoftShadowMap will enable bilinear filtering of the shadow in the shader for smoother results.
initial implementation of Ray3.
add recastSelf and document that I am unsure of the best way to handle failure cases.
Merge branch 'dev' into ray3
fixed #2728, Moved geometry primitives out of src/core into src/math.  src/core is now exclusive scene primitives.
rename Ray -> Raycaster, Ray3 -> Ray per @mrdoob (see #2729)
Ray unit tests.
finished scope of Ray unit tests, now I just need to make them work.
all Ray unit tests pass.
simplify Ray constructor based on @mrdoob's feedback here: https://github.com/mrdoob/three.js/pull/2734#commitcomment-2244506
remove console log output.
add slow but correct intersectBox with unit tests.
add some unit tests for Ray-Sphere intersection testing.
remove excessively long ray-box intersection code + unit tests.
remove non-core and trivial geometric primitive fucntions to reduce code bulk.
adopt Ray in Raycaster in a way that doesn't change API of Raycaster
remove GC from Ray.distanceToPoint
Rename variable ray -> raycaster in examples to reflect class name change.