MFEM_ERROR_ABORT and MFEM_ERROR_THROW.
Replaced 'set_use_throw(bool)' with 'set_error_action(ErrorAction)' and
'get_use_throw()' with 'get_error_action()'.
Rename class MFEM_Exception to ErrorException.
Add MFEM_USE_EXCEPTIONS to version.cpp.
A few updates in the build systems related to the new build option
MFEM_USE_EXCEPTIONS.
MPI_Session - the only communicator that makes sense with this class is
MPI_COMM_WORLD.
Replace `mfem::err.GetStream()` with `mfem::err`.
Remove #include "communication.hpp" from error.hpp.
general/globals.[ch].
Renamed class WrappedOStream to OutStream and use a different
implementation in order to support the case when the OutStream is passed
as a parameter of type std::ostream.
In class MPI_Session, added an MPI_Comm parameter to both constructors,
with a default value of MPI_COMM_WORLD.
Hide the global variable MFEM_COMM_WORLD and allow access (read and
write) with global functions: GetGlobalMPI_Comm() and
SetGlobalMPI_Comm() - in the future, we may want to perform some tasks
when changing the "global" MPI communicator.
In mfem_error(), use GetGlobalMPI_Comm() instead of MPI_COMM_WORLD.
Minor formatting changes and #include reordering.