Module for runtime errors
Create a central module to hand runtime errors. This allows for:
- A central place to define error codes (ideally as enums, not just numbers) and associated error messages
- A MPI safe way to terminate the simulation
- (optional) A precompiled definition to extract the source file and line where the error occurred, printed into the error message