Wrap main method with try...except Exception construct.

This construct will catch any Exception and suppresses the backtrace.
Any error message is registered by logging before. In the current
commit this is already satisfied, but error message might get registered
twice.

Next we don't register error messages with logging before and move the
logging.critical message to the top-level except-Exception.
Provide top-level critical error message.

Instead of registering error message using the logging module before
raising the corresponding Exception, we use the Exception to provide
user-level error messages (and use logging.debug or logging.error to
store dev-level error messages before).

The main routine catches those exceptions and forwards the messages
to the logging module.
Fix typo.
Fix FORMAT definition for logging module.

Level does not specify that only messages of this level are printed
out, but the minimum level. So a definition like this

    FORMAT = "Debug: %(asctime)-15s %(message)s"
    FORMAT = "%(asctime)-15s %(message)s"

misleads the user into thinking that every message printed out is
actually a debug message, which is not true.
We now use "%(message)s" for everything except verbose mode which
annotates the timestamp to the message.