Rework color handling and drawing

This replaces the two existing color parsers with a single, different
one. This parser has the same functionality as the parser previously
used by PARSE-COLOR-STRING, in that it turns a string with color codes
into a list of strings and lists of "modifiers", such as (:fg 1) to set
the foreground color to color 1. This parser, however, also supports
including those lists directly in the string. For example:

"Hello ^(:fg 1)World"

would result in a list like '("Hello " (:fg 1) "World").

The rendering code now also uses the output of this new parser, instead
of having its own. The modifiers are passed through the generic function
APPLY-COLOR, which has methods for all of the existing modifiers.
The current rendering state, such as the colors, whether brightness is
enabled, etc, is now stored in the color context object. The different
methods on APPLY-COLOR apply their changes to the instance of CCONTEXT.
Clean up font rendering code

If DRAW-IMAGE-GLYPHS is passed a font, it should also use that font.

Also add a few declarations to silence a bunch of warnings on
compilation.
Add multiple font support

This adds a ^f<n> modifier to switch to the font at N in the screen's
list of fonts. SET-FONT is changed to support specifying a list of fonts
instead of just one.

As an example, it's now possible to place this in your .stumpwmrc:

(set-font '("9x15bold"
            "-*-comic sans ms-medium-*-*-*-*-*-*-*-*-*-*-*"))

Then you could set *STARTUP-MESSAGE* to "Hello ^f1Comic Sans", which
would result in "Hello " being rendered in the default font, and "Comic
Sans" being rendered in Comic Sans MS. The height of each line of output
is determined by the tallest font used on it, and the rendering code
will try to center each piece of text on a line vertically.
Fix color stack popping

The color stack wasn't popping colors correctly, which could result in
StumpWM crashing.
Remove debug statements.
Fix only setting the background color.

The FOREGROUND variable will not have been set to :RESET, but will be
*, so it should match that.
Split the functionality of RENDER-STRINGS

RENDER-STRINGS did too much and was a bit of a monster. I split off some
parts, making it easier to understand.
Push font onto color stack
Properly calculate height of the mode line
Allow right-alignment of the rest of a line

It is possible for the right-aligned text to overlap the text before it,
for example in the mode line. In a normal message window that won't
happen because the width of the window is based on the text to output.
Document right-alignment
Merge pull request #108 from jorams/rework-colors

Rework colors and add multiple font support