Fixed(?) the wrong-direction bug in walking

There was a non-terminating condition that caused Rock to keep walking
in a direction even though he was instructed to walk in the opposite
direction. I forget what the condition was used for to begin wtih, so
I'm getting rid of it for now.
Added default number of lives + reset for them
Made "stage selecting" possible (sort of)

This is ghetto but it works for playing the game.
Event delegate overhaul -- using std::function

Replaced usage of fastdelegate with std::function. This allows lambdas
to be used as event callbacks (winner!). Also there was some overlap
between this feature and multiple-enemy spawning so some changes to
Spawners snuck in there.
Implemented rate/quantity spawning

Enemy spawners can now spawn more than one enemy at a specified rate.
This is particularly useful for things like telly-producers.
Documentation + slight improvement to EnemySpawner API

Added documentation for Spawner and removed unused method (which was
for a previous implementation idea).

Made it easier to do correct things and harder to do incorrect things
with EnemySpawner. Set some contraints on rate/limit values to prevent
impossible situations.
Removed unused variable from EnemySpawner
Random: made triple shot do same damage as megabuster
Documentation: FunctionDelegateBase
Removed FastDelegate dependency