Ray shooting geometrical predicates

Implements various ray-shooting predicates:
 - ray/triangle test
 - ray/quad  test
 - ray/surfel test (useful to locate a surfel in a digital surface using std::find_if)

:octocat: 
Why 2 times testRayIntersection<Z3i::RealPoint> ?