Fix --address and --port command line options
Usage & command line arguments refactor

A command line option is specified as a list of 4 elements:
    * a list of strings naming the option
    * a list of strings naming arguments to the option
    * a string describing the purpose of the option
    * a function to call when the option is given on the command line

A list of such options is used both for processing command line
arguments and printing usage info.
Fix connection management bug

This bug occurred when a command was sent, but the reply could not be
read due to an i/o exception (usually a read timeout).  Subsequent
commands would then read from the same connection, getting the response
for an old command.

This is fixed by reconnecting whenever an exception occurs during an mpd
command.

Also, a command line option is added to send an arbitrary command to
mpd.  The response (as a scheme object) is then printed to stdout, and
scmus exits.  This could be useful for piping to other scheme scripts,
or just as an mpc replacement.
Better assertions

Include function name and offending values in assertions.