Add id field to AnimatorPoint
Add millipede

This is a "baddie" that follows a path and drops a key when killed.

* Added millipede sprites
* Added code to setup path, move, and draw millipede
* Added "millipede" tag to init millipede on map load
Block sheep from moving over water
Update Level 2

Added some sheep
Update Level 2

Added millipede
Add rock

I wanted a terrain element to block the player, one that can't be
destroyed like a tree.

* Added rock sprite
* Added "rock" tag in map_translate()
Add Laser sprites and settings

* Moved edit cursor up one row to make space for laser sprites
Bug fix -- baddies not cleared upon map reload

* Truncated baddies before map is reloaded
Add Easing library to Animator modules

For smooth transitions
Add orb enemies

* "orb" tag
* orb sprite
* orb_draw(), ord_do(), and orb_hit()
Add Xmlparser class

For getting values via xpath
Bug fix -- xml parsing bug
Xmlparser -- update algorithm

After the xml is loaded, this version builds a list of xpaths with their
corresponding values, as it parses the xml tree.
Xmlparser -- add wildcard search

Xmlparser.getValue(), if give a wildcard in the path, will cycle through
values that match the path pattern. So it must be called multiple times
to retrieve the different values. It will return empty once it finds no
further matches.
Bug fix -- Xmlparser doesn't clear data if loaded again

Added truncate() method that clears and resets the class data. This is
called before the xml string is loaded.
Play "denied" door sound when trying to open locked door
Don't move the player if nothing has changed

To avoid repeated calls to events ( for example, repeating "denied"
sounds from pressing against a locked door ), the player is only moved
if something has changed:
* New move  ( different direction )
* Same move ( after no movement )
* Same move ( if tile changed )

"Move" means attempted move -- the player can still be blocked, but the
on_over event for the tile is only triggered once.

I added a _has_changed flag to the Map_Tile class that is set when any
of its fields are changed.
Remove unused "blocked" variable