This implements task splitting for gravity. Changes are:
The last item has been a long-running accuracy issue as we were always running a time-step after detecting that a rebuild is needed.
The task-splitting is currently not enabled over MPI. I will make this work alongside the periodic gravity over MPI in the next merge request.