Ensure all enemies have <image>, <width>, and <height> tags

The documentation describes these as required, but now the code
enforces this because behavior would be unpredictable if we did not
have set values for these.
Define image <scale> in the enemy Document Type Definition

This will allow us to scale an image for an enemy so that we can
shrink or grow it as needed inside the game data.
Implement support for the <scale> tag in enemy definitions

This adds a ‘scale’ property to the Enemy class which we set during
Enemy.load() to the proper value.  We modify Enemy:draw() to always
use this scaling factor.  Now we can add a tag like

    <scale>-2.0</scale>

to an enemy definition to shrink its size by two-hundred percent.
Fix error handling for enemy width and height

We cannot write code like

    tonumber(node:find("...")[1]) or error("...")

and expect to ever see our custom error().  That is because the
attempted array access inside of the tonumber() call will fail with
its own error before we ever get to ours.  Therefore we have to make
the code for setting enemy width and height a little more verbose if
we want to see our specific error messages.
Fix the logic for setting enemy speed

We get the speed value from the first array element of the XML node.
The current code incorrectly tries to convert the node itself to a
number, which does not give us the value inside the enemy definition.
Document the new <scale> tag for enemies
Fix a typo in createEnemyFromXMLFile()

The commit e01b7333 (‘Fix the logic for setting enemy speed’) uses an
‘else’ keyword where it should use ‘end’.  Because of this the game
fails to run because Lua cannot finish parsing the enemy source file,
as we never properly close everything due to the missing ‘end’.  This
patch corrects that error.
Introduce xml.getNumberOrNil to reduce copy-paste code in enemy logic

This patch adds a method to the ‘xml’ class exported by the LuaXML
library: getNumberOrNil().  It lets us search for a child tag and
return its value as a number, or nil if that tag does not exist.  This
allows us to remove multiple if-else-end blocks within the enemy code
that had to:

1. Test to see if the child node was not nil.
2. Convert its value if it did exist.
3. Set a default if it did not.

Now with this utility we can reduce all of those existing logic blocks
to one-liners.

I felt it was safer to put this in our utilities module instead of
modifying the LuaXML code itself.  However, because we now add
something of our own to LuaXML we should always require() our
utilities module last.  That way we can try to avoid any conflicts,
and at least ensure that our method takes precedence.

This patch also fixes a slightly related bug I noticed during this
refactoring: the logic for setting enemy speed was checking
‘imageNode’ instead of ‘xml’.  That is, it was looking for speed
information in the wrong place inside the enemy document.  This was a
mistake caused by copy-pasting.
Teach docs/Makefile to convert *.txt to *.html implicitly

This makes it possible for

    make clean && make all

to rebuild all of the documents instead of whatever is alphabetically
first.  Without this patch, given the above command only
‘Enemies.html’ would be created, or any document that came earlier
in alphabetical order.
Fix a typo in docs/Enemies.txt
Fix a typo in docs/Patterns.txt

Did I type ‘ppwe’?  Really?  Clearly I was not holding down Ctrl like
I thought when pressing ‘p’ in Emacs.
Fix more typos in docs/Patterns.txt
Small whitespace cleanup in enemy code
Define an optional <shader> tag for enemies in their DTD

This will allow us to apply a shader to enemies when rendering them,
opening the way for advanced graphic effects.
Define and document the Enemy.shader property
Apply any available shader when drawing enemies to screen
Document <shader> usage in docs/Enemies.txt

It would be nice to provide a URL to the actual relevant LOVE
documentation but I am working offline at the moment, so….
Merge branch 'ejmr/enemy-shaders' into ejmr/enemies

* ejmr/enemy-shaders:
  Document <shader> usage in docs/Enemies.txt
  Apply any available shader when drawing enemies to screen
  Define and document the Enemy.shader property
  Define an optional <shader> tag for enemies in their DTD
Add ladybug enemy art asset
Define a basic XML file for the ladybug enemy

This moves it from the top of the screen downward.  This way we can
take a look at it in the enemy prototype.