Refactor gmx_fatal()

- Remove t_commrec and legacyheaders/ dependencies from
  utility/fatalerror.cpp by splitting gmx_fatal_collective() into a
  low-level helper (in fatalerror.cpp) and a high-level routine that
  knows t_commrec (in network.c).
- Move the declaration of gmx_fatal_collective to network.h to get rid
  of one more header in legacyheaders/.
- Refactor fatalerror.cpp such that the error handler is no longer
  responsible of terminating the program.  Split functionality into
  helper functions that can be called as appropriate, and remove a lot
  of duplication.
- Clean up gmx_abort() and code that calls it.
- Remove interactive prompt from the error handler exit path.

Change-Id: Ia0ab2e415a18bf6ed17bebd1fd8870946d16793e