Rename the Character.color property to Character.textColor

We should make it more explicit what the current ‘color’ means in the
code before introducing more color-related properties to Character
objects, such as background colors and border colors.
Change ‘color’ to ‘textColor’ in all examples and documentation

We renamed Character.color property to the more verbose textColor and
need to update all examples and documentation to reflect that.
Define the Character.borderColor property

We will use this property to control the color of the border we will
draw around character images, if the property has a non-nil value.
This will only teach the Character class to recognize the property in
its constructor like it does ‘textColor’.  The engine will not yet use
the ‘borderColor’ in any meaningful way.
Add some advice about screen settings when using LNVL as a library
Improve the vertical position of character images

Currently the placement of character images overlaps with the
container for scene dialog.  The ‘draw-character’ opcode does not take
into account the height of the image, so it is easy to create images
that spill over into the container.  We can fix that by using the
image height as part of the calculation for the vertical position.
Add an example script for testing character image borders

We will use this script for testing border colors and any other
properties we define for character image borders in the future.
Define LNVL.Color.Transparent

We will need a distinct value in scripts and in the engine code itself
to represent colors that should have no color at all.  This will be
useful for borders, for example.
Make character border colors transparent by default

We do not want character images to have borders by default.  However,
using a default value of nil makes it impossible to change a
character’s border color.  The constructor only lets us overwrite
properties which have non-nil values; if the ‘borderColor’ property
has a nil value by default then we can never change that in scripts.
Instead we should set the default color to be transparent.  This will
still prevent the engine from drawing a border unless we give it an
explicit color, and it will also fix the bug of being unable to change
the border color by giving it a non-nil default.
Teach the ‘draw-image’ instruction to accept an optional ‘border’

To help us draw borders around character images we will teach the
‘draw-image’ instruction to accept on optional ‘border’ argument.
That argument will describe the color and width of a border which the
instruction will then render.  We will teach the ‘draw-character’
opcode to check whether or not the character has a defined border, and
if so, create the necessary border data to pass along to the
‘draw-image’ instruction.
Correct a reference to Character.textColor in the instruction list
Clarify the choice of default value for Character.borderColor
Define a Character.borderWidth property

This will allow us to customize the width of character image borders
in scripts.  And we can remove the hard-coded width from the
‘draw-character’ opcode.
Add a test border width to the ‘09’ example script
Divide the settings file into more readable sections

This patch only changes whitespace and formatting.
Load the LNVL.Color module before LNVL.Settings

This will make it possible to use the defined color names inside of
the settings file.
Control character border color and width from the settings file

We already control similar settings for Scene objects inside of the
settings module, so it only makes sense to define similar settings for
Character objects in that module as well.
Define the default character text color from the settings module
Move around table definitions in the settings module for consistency

This patch contains no changes to any logic.  It only moves a couple
of lines around so that the initial definitions for each table within
the LNVL.Settings module comes first in the appropriate section of the
settings file.
Mention LNVL.Color.Transparent in the Howto documentation
Improve the debugging output for borders in opcodes

Currently when we print out ‘draw-character’ opcodes we show a table
memory address for the optional ‘border’ argument.  It will be more
helpful to show the actual border color and width.  We can take
advantage of the tostring() support for LNVL.Color objects by
explicitly setting the metatable for the border color as well.