'run' make target

Makes and then runs scmus.
Support mpd password

The mpd-password option gives the password to be used to authenticate
with mpd.

Also, some refactoring in mpd-client.scm to simplify the definition of
commands that should return a list of song objects rather than a flat
list of pairs.
Refactor cmdline options code

Code for processing command line options is moved to getopt.scm.  A
record type is used for specifying options rather than lists.
process-opts now returns an alist of options and their values, so that
some processing can be delayed, as needed.

Also, an option is added to specify the MPD password on the command
line.
Allow specifying host/port/password for --command

Add host, port and password arguments to scmus-oneshot.
Incorporate ncurses egg into project

The ncurses egg is compiled statically into scmus.  This way everything
can be linked against libncursesw, which may or may not be significant.

Also, this should make it possible to link statically against ncurses.
(Apparently some systems have only libncurses.a, in which case the
ncurses egg fails to compile.)
Browser view

View for browsing the MPD server's music directory.  Works exactly like
the library view.
Use 3-tuples for color options

Instead of having 3 separate options for each color pair + attribute, a
3-tuple (attribute background foreground) is used.
Support curses character attributes

All A_* curses attributes have a corresponding symbol for use in color
options (e.g. A_BOLD -> bold).  I have no idea what most of these are
supposed to do, but I guess there's no harm in exposing them.
Bring man page up to date

Documentation for new/changed key bindings, views, functions and options.
Scheme code in format strings

Scheme code may be given inside format strings, using the ~[] directive.
The expression inside the brackets should evaluate to a function of one
argument, taking a track object and returning a string.  The expression
is evaluated once, when the option is set.

e.g., the following are equivalent:
    "~[(lambda (x) (track-file x))]"
    "~[track-file]"
    "~{path}"
    "~f"
Show escapes in format strings

(format "~s" ...) is used with format strings instead of "~a" so that
backslashes are not removed.
Allow any scheme expression inside ~[]

Any scheme value may be put inside of the ~[] specifier, not just
functions.  The value is processed with (format "~a" <value>) and
substituted for ~[].  Functions are treated specially, as before, though
functions may now return non-string values.
Print error messages to command line

error-set! writes an error message to the command line as well as
updating the error view data.
Refactor format.scm

Just put functions in format strings, instead of (cons 'function <fun>)
or symbols that need to be interpreted (e.g. 'artist, 'album, etc.).
Optimize format strings

Concatenate consecutive characters in format strings in process-format,
so that this isn't done every time a format string is used.
Expose *options* through a function

Prevent mutating *options* except through the appropriate interfaces.
format.scm: accept strings (not lists)

process-format and format-string-valid? take format strings as arguments
rather than lists of characters.
Remove format-queue-title option

The complexity of managing title updates is not worth the benefit of
having customizable view titles.
Arbitrary metadata + options in format strings

The ~<> specifier may be used to include options (e.g. mpd-address) in
format strings.  If the string inside ~{} is not known to scmus, it is
interpreted as the literal name of a metadata field, which is looked up.

e.g. to get the value of the musicbrainz_trackid metadata:

    ~{musicbrainz_trackid}

to print hostname:port of MPD:

    ~<mpd-address>:~<mpd-port>
hostname and port format specifiers

The ~{host} and ~{port} specifiers give the hostname and port of the mpd
server scmus is connected to.  This is different from ~<mpd-address> and
~<mpd-port> in that the ~{} versions give the current information, even
when scmus is connected to a server other than the default given in the
options.