Improved multipole acceptance criterion (MAC)
Big improvements to the gravity code.
Improvements:
- Fix mistakes in the higher-order derivatives used below softening,
 - Implement the Dehnen+2014 multipole acceptance criterion (in cartesian coordinates),
 - Allow (optionally) to use the tree below softening,
 - Allow (optionally) to use the truncated and softened potential in the MAC,
 - Fully simplify the first order multipole terms that are 0,
 - Simplify the signature of the long-range and short-range gravity truncation functions,
 - Do not use the M2P kernel if the multipole is made of one single particle,
 - Vectorize the cache construction and write backs to memory,
 - Vectorize the M2P kernel,
 - Use a leaf-level cell lock rather than the field-by-field atomic operations on the particles,
 - Significant update to the gravity theory doc.
 
Still to do:
- 
Correctly use and document the new truncated MAC,  - 
Re-implement the MAC for the proxies,  - 
Update all the example YAML files,  - 
Clean-up the debugging checks,  - 
Prevent M2L for cells with small number of particles.  
Edited  by Matthieu Schaller