Multi Source / Multi Target routing

This branch contains code to enable OSRM to do a "one to many" and "many to one" shortest path search.

For the one to many case:
The forward heap keeps the distances from the source and gets reused for each target.
The target heap keeps the distances from the target and gets cleared for each target.

The many to one case ist just the other way around (use all edges in the opposite direction).

I'm new to OSRM and to the GitHub flow. I'm sorry if I got something wrong. I'm open for feedback.

Is the way, the distances are computed in RoutingAlgorithms/MultiTargetRouting.h (line 167 ff.) correct?
Is it correct to use IncrementalFindPhantomNodeForCoordinate here (instead of the non-incremental version)?