New Intersection stuff

Replaced the old IntersectVisitor with a new IntersectionVisitor which gives support to add different types of intersector. 

The LineSegmentIntersector replaces the full functionality that the old intersector had. Including KD-trees. 

The PolytopeIntersector mimics the OSG one, now the user can 'pick' points and lines, and also triangles.

Added a PrimitiveFunctor class to get access to the primitives of a Geometry, something like the TemplatePrimitiveFunctor class in OSG. 
As a general note I would argue that Inheritance is not the same thing as having a template<T>. In C++ this has sense because the code is generated in compile time and it is really fast. And at the end it acts like a "callback" calling the () operator in the case of PrimitiveFunctor. Does in javascript really have sense to have inheritance in this case? (I say that as a javascript noob)