Documentation: Start writing a guide for enemies
Documentation: Describe the root and <image> nodes of enemies
Documentation: Explain spawn location of enemies
Add a ‘make clean’ rule to docs/Makefile
Modify ‘docs/Makefile’ to convert all Markdown files to HTML
Documentation: Finish the guide for defining enemies
Document all of the targets in the Makefile
Define a GAME variable in the Makefile

We will probably not change the name of the game, but this was a tiny
refactoring I noticed while adding comments in the previous commit.
Add credits to the README
Add a comment to StingerBullet about using a pattern file
Change StingerBullet to use our OO library

This provides no functional benefit but adds consistency to the
codebase and current classes.
Remove STINGER_BULLET_LIST

We will not be storing player bullets in this list since the Pattern
class will take care of this for us.
Merge branch 'enemy-documentation' into ejmr/documentation

* enemy-documentation:
  Documentation: Finish the guide for defining enemies
  Modify ‘docs/Makefile’ to convert all Markdown files to HTML
  Add a ‘make clean’ rule to docs/Makefile
  Documentation: Explain spawn location of enemies
  Documentation: Describe the root and <image> nodes of enemies
  Documentation: Start writing a guide for enemies
Remove parameter processing from parseBulletMLMath()

This is the first step in a change towards correcting how we handle
variable parameters in BulletML files, i.e. <param> nodes.  First we
need to store the original <bullet> definitions with the strings used
in the XML file, so that for a bullet’s speed we may store the literal
string ‘$1+10*$rand’.  This allows us then to properly get the correct
value for ‘$1’ when we spawn a copy of the bullet.  A potential
performance downside to all of this is that it will make handling
‘fire’ instructions more computationally expensive.
Properly handle <param> values in bullet pattern files

This patch modifies how we parse BulletML to allow the proper
substitution of <param/> values when they appear inside <bulletRef/>
nodes.  In order to make the conversion easier we modify the ‘fire’
instruction to have as its value the entire <bulletRef/> node instead
of simply its label; this lets us avoid passing another argument which
would just be the node, where instead we can just change the
call-sites that need the label appropriately.

To test this we modify the bullet prototype to allow execution of
‘test-3.xml’, which nows runs as we expect.
Fix the reference to the BulletML DTD in the bullet engine header
Implement difficulty and ‘$rank’ as a setting

This patch adds support for modifying the variable ‘$rank’ in BulletML
math expressions.  We control the value by the new Settings.DIFFICULTY
value that defaults to zero.  Ultimately this does not change any
current behavior since we already defaulted to zero; but this does
open the way for a patch to read difficulty settings from the player’s
config file and have that affect current and future bullet patterns.
Begin documenting how to write actions in bullet patterns
Add some documentation about writing <fire> tags
Fix bug supporting math expressions in bullet patterns

We updated the pattern ‘test/test-3.xml’ to show an example of the
expressions which triggered a fatal error prior to this patch.