split the raycaster so we have a rayIntersectsFace function.

Octrees and BVH-Trees  need a function to test a single triangle against a ray. 

The first commit just adds  the new function. 
The second commit gets rid of all the duplicate code. 

Demos:
http://www.gsx.de/threejs_test/splitRaycaster/webgl_interactive_draggablecubes.html
http://www.gsx.de/threejs_test/splitRaycaster/webgl_interactive_draggablecubes_bufferGeometry.html

If someone could point me to a good test case with a Indexed-BufferGeometry with active IndexOffset i could add another demo.  I only have normal IndexedBufferGeometries.