Merge pull request #2115 from RosettaCommons/roccomoretti/tracer_annotation
Update formatting for error conditions
Several changes to improve diagnostic messages in the (rare) event of Rosetta failure.
* Have the Fatal/Error/Warning tracers automatically label the output level with "[ FATAL ]"/"[ ERROR ]"/"[ WARNING ]" respectively
* Consistency allows for easy grepping/noticeability of errors or warnings.
* It also makes it easier to change how we tag tracers if people don't like "[ FATAL ]"/"[ ERROR ]"/"[ WARNING ]"
* Many tracer output statements have been updated such that
1. We don't double-print the Error/Warning tags
2. Tracer statements which say they're warnings/errors actually go out on warning/error priority
* runtime_assert() and debug_assert() output has been reformatted to be a bit more user friendly
* e.g. We now indicate that the condition printed has failed, rather than implying that the condition is an error in itself.
* `assert(false)` is not a good way to end the program, as it provides absolutely no information about what the failure was. Fix all the `*_assert(false)` instances I can find with something like `utility_exit_with_message()`.
* Replace most of the plain C++ `assert`s with Rosetta `debug_assert`s, as that gives more information. (e.g. the backtrace on platforms which support it.)
Lots of cosmetic changes in integration tests expected.