overhauled the logging module.

- removed log message categories.
- added support for user-defined log formats.
- added facilities to save the configuration of a logger and automatically restore it when leaving the scope.
- by default, log messages are now prefixed with the date, time and thread id.
- warnings and errors (fatal and non-fatal) emitted during unit testing are now displayed.
fixed errors and warnings emitted during unit testing.
fixed typo.