cooldown: new timer class
multiple: add onTick/onTurn fn vector to entity

- Add two vectors of std::function<> to Entity.  One to call every tick(), the
  other for every turn().
- Strip out all of Character's methods.  They didn't do anything.
- spawn() functions in Area return NPC/Overlay instead of just Entity.
music: fix compiler warning
all: large refactoring of Entity movement

All Entity-Tile interactions have been moved into Character.
Almost all Entity-pixel interactions have been moved into Overlay.

- Overlays do not trigger onTileEnter/onTileLeave, etc, anymore.
- Entities may be safely deleted from an Area.  They are flagged as 'dead'
  until the end of an Area::tick()/Area::turn(), during which they are
  purged from the Area's set.  At the moment, their destructors are not
  called.
- The public interface of Entity has been shrunk.

Hopefully the Entity movement code is easier to read. :)