Previously, various error handling functions were defined, but not all
of them were even used. The new error handling functions handle the most
common cases:
- Assertions. These can be handled with `ASSERT()`, which gives the
error location for debugging.
- Errors we don't know how to handle, like GetNewWindow returning NULL.
These can be handled with `EXIT_INTERNAL()`, which gives the error
location for debugging.
- Out of memory conditions. These can be handled with `ShowMemError()`.
- System errors in response to user operations. These can be handled
with `ShowError()`.