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: