Changed the specification for events.

In particular, I removed the requirement for implementations of SGE
to conform to an arbitrary ordering of event execution. This
requirement made it impossible to optimize loops effectively and
likely has very little, if any, benefit. However, this makes having
three separate step events meaningless, so the "begin step" and
"end step" events have been removed.

Another small change I made to the specification: the step event
now includes an argument indicating the number of milliseconds
elapsed during the last frame. This allows more low-level control
for those who want it, e.g. it allows delta timing to be
implemented manually.
Updated to the new specification and fixed some mistakes.