Tidy up logging and add debug / quiet modes

Added a very simple logging and debug framework, adding two
new command line options (`--debug` and `--quiet`) and two new
methods in the Utils class (`debug` and `info`).

`--debug` will print all messages to STDERR, `--quiet` will print
no messages whilst the default state is to print messages sent
to the `info` method, but not to the `debug` method.

At startup, the Options.debug method is now called every time,
although it uses the debug method to output the information and so
will only appear when the `--debug` flag is used.

Also, the return value of an action is now only printed when it
is not `nil`. The `edit` action has been modified to return `nil`.

Finally, I also tidied up the short options so those that are used
frequently are explicity provided.