Frustum improvements + unit tests

This PR contains the following:

* Significant polishing of Frustum.js so that it has the characteristics of the other members of the math library (proper constructor, set, copy, clone.)

* Additional Frustum.js functionality including containsSphere, containsPoint, containsAnyPoint and transform (could be renamed applyMatrix4.)

* Frustum unit tests.  (We now have over 1100 unit tests!)

* Added Plane.flip() method and a unit test.

Also I updated some other unit tests to use applyMatrix4 in a few cases so that they work again and removed some unused temporary variables from Raycaster.