Make the default fatal error handler not abort
For finding bugs in clean-up paths during development, it would probably be best for the default error handler not to abort on fatal errors. Instead, control should return to the caller, which would then be responsible for propagating the error code upwards. Existing code might be difficult to adapt to such changes, but what we could do is to modify the handler in src/gromacs/fatalerror/fatalerror.cpp to do this, perhaps only on debug builds and/or when an environment variable is set. This would help in new code. Unit tests most likely will always use their own error handler, but for other testing, the current abort() call effectively prevents finding any bugs in clean-up code (which is one of the reasons why the selection code uses gmx_fatal() very little).
The change itself is easy, but what should be thought about is what is the best way to handle the issue.