Particle splitting "a la EAGLE"
This implements a new small physics module: overly-massive particle splitting.
At a rebuild time that does not coincide with a repartition (to avoid creating unnecessary trouble),
we loop over all the gas particles and identify which ones are above a given mass threshold. These
are then split into two equivalent pieces and slightly offset from each other.
We create a companion gpart
as well and relink the particle.
All this is done on a node-by-node basis and just before rebuild such that the reorganisation and possible exchange
of particles is done correctly.
Additional subgrid-related fields that also need splitting are offset to the respective subgrid implementation.
The only bit that needs to be properly taken care of is the reallocation of the arrays in case we run out of space.