Implemented a queued logger for the GUtil logging library, which logs on a
background thread and which protects
otherwise thread-unsafe loggers for multithreaded access.
Reimplemented the global logger
Removed File and Line from the exceptions, because this is debug info and
potentially contains proprietary source code information.

If the user is debugging, then they can find where the exception came from
in a debugging session. Otherwise they don't care about the file/line
information, so why store it at all?

I also removed the macros related to throwing exceptions
(THROW_GUTIL_EXCEPTION) because it should be very straightforward to
instantiate and throw an exception now.
Added GDEBUG2, which only logs the message if the condition is true
Added a warning in case you forget to clean up the global logger,
and reduced the penalty for setting a QueuedLogger as the global logger to
a warning, rather than a debug assertion