Replace all the mpi codes by a define-based facility

Instead of having 10 codes that only differ by 10 or so code lines,
we use an header `victimselect.h` that contains all the victim selection
versions. Defines at compile time choose which one to use.

We still keep to versions of the code, one for the 1 chunk steal and the other
for the half steal.