Avoid passing a global lock down via constructors

* By using a GStaticMutex we can avoid creating a global mutex and pass that down to ufo_mpi_messenger in the constructor
* All checks of the MPI thread level now go into the ufo_mpi_messenger -> less #ifdefs