Support for multiple softening lengths in the gravity solver
Implements the following:
- Add background DM particles (type 2).
 - Different softening lengths for DM, baryon and background particles.
 - Background DM particles have a softening length that scales with mass^(1/3).
 - Two particles interacting directly use the largest of the two softenings.
 - The multipoles carry the maximal softening length of any particle within the multipole
 - The multipole-multipole or particle-multipole calculations are only allowed if the distance is larger than the softening.
 - Fixes #599 (closed).
 - Update all the examples to use the new names for the softening lengths in the YAML files.
 - Update the RTD description of the Gravity parameters and i/o.
 - When replicating the ICs, replicate the black hole particles. Prevent replication when running with background DM.
 
Edited  by Matthieu Schaller