Fix the TAGS generation for opcode processors

Because we removed the ‘LNVL’ prefix from the definition of opcode
processors we need to update our invocation of ctags-exuberant to
reflect that.
Add whitespace to instruction definitions for consistency

This patch changes the definition of instructions to match the brace
style that we use in other parts of the engine and example scripts.
Fix tag generation for opcode processors and instructions

The regular expressions we give to ctags-exuberant need to ensure some
content follows the square braces of processor and instruction
definitions or otherwise it will fail to find them.  So this patch
adds a simple ‘.+’ element to each of those regular expressions.
Return Color objects from Color.FromHex()

Currently we only return a table of RGB values from the function.
While this reflects the structure of Color objects it is missing an
important piece of data: the metatable.  Our failure to set the proper
metatable for the return value of Color.FromHex() causes errors
whenever we try to discriminate tables based on their metatable.

This patch fixes the problem by ensuring that the function returns
tables that have LNVL.Color as their metatable, for consistency with
all other colors we use throughout the engine.
Rewrite Graphics.DrawText() to accept an arbitrary table of contents

The previous design of DrawText() required three arguments:

1. A Font object.

2. A Color object.

3. The actual text to draw.

However, we allowed the third argument to also be a table which could
contain strings or Color objects, indicating that DrawText() should
switch to using those Colors as it came across them.  This was a messy
design.

This patch redesigns the function so that it accepts only one
argument: a table.  That table may contain any sequence of the three
elements listed above.  However, we eliminate the possibility for text
to also be a table containing colors.  This is not necessary since
arguments to DrawText() can now have colors anywhere before strings.

With this redesign we need to change how we process the ‘say’
instruction.  It composes the order of arguments for the function and
so we modify it to fit the new DrawText().  Furthermore, within that
instruction we can now call Graphics.DrawText() directly and eliminate
the Scene:drawText() method.  We used the latter to add font
information but this is no longer required, so we can delete the
method entirely.
Use an underscore for a loop variable that we do not actually use
Merge branch 'better-drawtext-functionality'

* better-drawtext-functionality:
  Use an underscore for a loop variable that we do not actually use
  Rewrite Graphics.DrawText() to accept an arbitrary table of contents
  Return Color objects from Color.FromHex()