Provide a utility to map a function over a Scene’s table of opcodes

Each Scene object has a table of opcodes which may contain individual
Opcode objects or, recursively, tables of more Opcode objects.  There
are multiple cases where we want to apply a function to each object in
that tree.  This patch provides a method for doing so.
Refactor the logic for managing a scene’s active character list

This is a step towards breaking down the logic for rendering scene
content into smaller, more flexible pieces.  Our existing approach is
to update the active character list in a scene whenever we convert the
current opcode to an instruction and execute that to (usually) render
something to the screen.  This patch takes all of the logic for
managing the character list and places it within its own method.

With this patch in place we lose some existing functionality because
we do not call the new method from anywhere.  That means we lose all
management of the active character list.  The plan is to call this
method later when we decide the best place after dividing up more of
the existing Scene logic into smaller chunks.
Remove the for-loop that executes instructions

We can replace this with a call to mapOpcodeFunction(), which exists
exactly for situations like this.
Implement a method for fetching all current instructions in a Scene

Continuing the refactoring of the code for rendering scenes….  Every
tick we create content on screen by converting the scene’s current
opcode into one or more instructions and then executing those
instructions.  This logic was in the drawCurrentContent() method but
rendering the content and converting the opcode into instructions are
separate steps.  This patch removes that conversion process from
drawCurrentContent() and places it within its own method.
Document and define an unimplemented scene handler

This patch provides the source-code documentation and the definition
for the handler we will use for allowing developers to customize the
way LNVL draws scenes to the screen.  However, this patch does not
provide the default implementation of the handler to maintain the
engine’s current behavior.
Provide a default implementation for Settings.Handlers.Scene

This completes the conversion and break-down of the Scene code to the
point where we can allow other developers to hook in their own draw()
routine for scenes if they so desire.  The default implementation
provides all of the functionality we originally had, while throwing
away a little bit of code along the way thanks to the refactoring from
previous commits.
Merge branch 'ejmr/scene-handlers'

* ejmr/scene-handlers:
  Provide a default implementation for Settings.Handlers.Scene
  Document and define an unimplemented scene handler
  Implement a method for fetching all current instructions in a Scene
  Remove the for-loop that executes instructions
  Refactor the logic for managing a scene’s active character list
  Provide a utility to map a function over a Scene’s table of opcodes