Use public function to get logging level name

Stop using a private dictionary from the logging module to translate
logging level names into numbers and correctly use the getLevelName()
function from the public API.
Correctly test log levels passed to the log API

Test that the correct log level number, not the log level name, is used
internally when configuring the logging module.
Suppress exceptions on exit from logging module

Stop the logging module raising exceptions about closed streams when the
interpreter exits.
Enable listing options in alphabetical order

Support new argument to begin.start() to list command line options in
help output in alphabetical order as opposed to the order accepted by
the function. Closes #14