Refactor base.ParLoop::compute

Orchestrate MPI operations in base.ParLoop instead of the backend subclasses