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. 
@stephomi  I'm just fixing the closures stuff, do you think this code block could be rewrited as a new function?  I say that because many times the code flow won't reach this section, and I'm not sure to create the vars (like e1, e2, etc) in a closure when the vast majority of the times they won't be used. thoughts? Names for the function are welcome? :)