Add an ‘images’ property to Characters and create the default image

This patch adds support for using the ‘image’ argument in the
constructor for Character objects, although we do nothing with the
image except load it.  This patch adds nothing for displaying it on
screen anywhere.
Fix method calls in the third example script

We changed some methods since originally creating this example.  We
must explicitly call the constructors of Character and Scene objects.
And we cannot call becomesNormal() without any argument, or else Lua
does not realize we are invoking a method.
Add stubs for Character:becomes() and becomesNormal()

We add these stub functions so that we can at least execute the third
example script without any errors that crash the system.
Document the new opcode and instructions for changing images
List the new image-related opcode and instruction as valid
Make the structure of valid opcodes and instructions consistent

This patch makes no changes to the logic.  All it does is change the
existing lists of opcodes and instructions to always use the ["..."]
format for consistency, since we will have to use this form for
opcodes and instructions with dashes in the names.
Add a ‘currentImage’ property to Character objects

We will need this so that the engine knows which image to draw when we
actually ask it to draw a character to the screen.
Implement the opcode and instruction for character images

This patch implements the ‘set-character-image’ opcode and the
‘set-image’ instruction, which modifies the current image of a
character.  However, this instruction does not draw that character
image to the screen.
Fix Character:becomesNormal()

It calls becomes() with an Image object, but becomes() requires a
string so we need to call it with the argument ‘normal’ instead.
Fix the paths to images in the third example script

The images we use for testing are currently not part of the
repository.  We will come back and add them later when we have
something that looks more… polished.
Include the examples in the lnvl.love file

If we do not do this then the engine will fail to be able to find the
character images.  This is because the engine will only look within
that archive file and the save directory for the program, which we do
not set.  So we must include the examples and their images in the
archive for testing purposes.
Properly set the ‘normal’ character image

We assume that if constructor has the ‘image’ property then it will
set the ‘character.image’ property, but this is not true.  That is
because the for-loop which overrides default properties only works on
existing properties, and because ‘image’ is not pre-defined the loop
will not set its value.  Therefore we have to access the filename from
the constructor arguments directly.  This is better anyways because
now we do not have a ‘character.image’ property, which we did not
intend to use anyways.
Save the filename for the ‘normal’ character image

If we create a character with an image then we only save that image in
the ‘images’ table under the key ‘normal’.  This is fine, and useful,
but we also need to store the image under its filename for future
reference as well.  That way scripts that choose to explicitly refer
to the image will work.

This patch fixes a bug in the third example script where the engine
could not load the ‘normal’ image, precisely because we do not save
its original filename.
Merge branch 'master' into character-images

* master:
  Factor out the drawText() code into LNVL.Graphics
  Correct the documentation of LNVL.Graphics to not mention methods
  Move the container drawing code into LNVL.Graphics
  Create a bare-bones LNVL.Graphics module
Add documentation about using character images in the Howto
Add some design documentation notes about LNVL.Character
Add an example script for setting Scene background images

This script indicates the syntax we want to use for loading background
images for scenes.  It will be our test case as we implement support
for those backgrounds.
Implement support for a background image in the Scene constructor
Fix the buggy reference to ‘self’ in LNVL.Graphics.drawText()

Originally the function was a method of LNVL.Scene and so
‘self.foregroundColor’ was available.  But we do not use objects for
the graphics code, so we must pass in the foreground color.  This
patch modifies drawText() so that it now takes three arguments; the
new second argument is the default foreground color to use.  The patch
also updates LNVL.Scene:drawText() so that it passes the correct
arguments to the updated graphics function.
Include the examples in the lnvl.love file

If we do not do this then the engine will fail to be able to find the
character images.  This is because the engine will only look within
that archive file and the save directory for the program, which we do
not set.  So we must include the examples and their images in the
archive for testing purposes.