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. 
To prevent useless allocation, we should put these temp var outside of the for loop
(or maybe even better, if this function is called often, in a closur)