Draw character images about the scene dialog box
Refactor the Y coordinate of character images into a common variable

This will make it easier in the future to adjust the value of where we
place character images along the Y-axis.
Add a ‘position’ property to Character objects

We will use this to control where a character image appears on
screen by default.  Currently the only way to change this is through
the constructor, or by direct manipulation in a script.
Write about character image positioning in the Howto document

Not only does this explain how to position character images but it
also provides an example of how we expect the Character:isAt() method
to work, which we have yet to implement.
Accept the ‘position’ property in the Character constructor
Implement LNVL.Character:isAt()
Add an example script to test Character:isAt()
Fix a bug with first nil index property in ClampedArray:new()

We use ‘__first_nil_index’ to track where the first nil element occurs
in the array.  It has an initial value of one, which is appropriate
for empty arrays.  But we do not update the index if the constructor
receives elements to store in the array.  We must increment that index
for each value we add to the array.

With this patch in place we can run the ‘06’ example script without it
crashing.  Before it would crash after changing the scene background
because the incorrect value for ‘__first_nil_index’ caused an
out-of-bounds array access, which caused the program to pass a nil
value to code that would break the program.
Document the ‘no-op’ opcode and why we need it in the design document
List ‘no-op’ as a valid opcode in the engine
Implement the ‘no-op’ opcode

This patch teaches Character:isAt() to return ‘no-op’ since every
method that can be called within a scene needs to generate an opcode.
We then teach Scene:drawCurrentContent() to skip over those opcodes
without invoking any instruction, since none exists for no-ops.
Do not blend character images into the background

The ‘draw-image’ instruction needs to set the color mode to ‘replace’
before rendering a character image.  If it does not do this then the
image will blend in with the background, distorting the colors and
causing other undesired effects.
Draw the scene when drawing character images

Currently when we draw a character image the rest of the screen goes
black because we do not draw the scene in that same tick.  This patch
updates the ‘draw-image’ instruction so that it always draws the
screen first, and then we draw our character image on top of that.
Always draw the scene when calling drawCurrentContent()

Not every instruction renders something to screen.  When we execute
such instructions, like ‘set-image’, it results in a blank screen
because we depend on the instructions to call Scene:draw().  This
patch ensures that we call Scene:draw() before executing every
instruction so that we no longer have blank screens.  As an example,
executing the ‘03’ test script without this patch shows a black screen
every time we execute Character:becomes() because the resulting
instruction does not update the screen; that is what this fixes.
Remove calls to Scene:draw() from instructions

Now that we always call Scene:draw() before executing instructions we
can remove all calls to that method from the instructions themselves.
Merge branch 'improve-character-images'

* improve-character-images:
  Remove calls to Scene:draw() from instructions
  Always draw the scene when calling drawCurrentContent()
  Draw the scene when drawing character images
  Do not blend character images into the background
  Implement the ‘no-op’ opcode
  List ‘no-op’ as a valid opcode in the engine
  Document the ‘no-op’ opcode and why we need it in the design document
  Fix a bug with first nil index property in ClampedArray:new()
  Add an example script to test Character:isAt()
  Implement LNVL.Character:isAt()
  Accept the ‘position’ property in the Character constructor
  Write about character image positioning in the Howto document
  Add a ‘position’ property to Character objects
  Refactor the Y coordinate of character images into a common variable
  Draw character images about the scene dialog box

Conflicts:
	src/opcode.lua
	src/scene.lua