[RFC] Really uniform startup path for all binaries.

Main changes:
- Move MPI_Init() call from init_par() to a separate initialization
  method that is now called from the beginning of the wrapper binary.
  Similarly, make it the wrapper binary's responsibility to call
  MPI_Finalize().  Also make this behave uniformly for the wrappers that
  implement main().
- Call MPI_Abort() on exceptions.
- Move the LegacyCmdLineWrapper from legacymodules.cpp to
  cmdlinemodulemanager.cpp, rename it, and add methods to access it in
  other contexts as well.
- Merge g_pme_error into the wrapper binary.  Make mdrun and other
  remaining binaries to use this code path for initialization, even
  though they still remain independent binaries.
- Remove unnecessary code from statutil.*, now that the common options
  are handled by CommandLineModuleManager.

All executables now start up through CommandLineModuleManager::run(),
making it easy to adjust common behavior.

RFC because I don't have easy access to an environment where I could
test MPI or X11 code; thus I would appreciate it if someone could test
these parts (if Jenkins verification is not sufficient).

Part of #685.

Change-Id: I2cb9b0745c084b3d77f95ca163aa6745af01c1bc