Fixed crash when user hits ESC while sound plays

Before this change, if the user backed out of the TileEngine while a
sound was playing, the sound's completion would try to signal the
TileEngine's Scheduler, which had already been cleaned up, thus leading
to a segfault.

To fix this, the Task generation logic was moved to the Scheduler. The
Scheduler now manages its tasks in an active task list. If any tasks
have not been finished when the Scheduler is destroyed, it will
deactivate them so that they don't try to signal the Scheduler
afterwards.

Tasks now only self-delete if the Scheduler has been destroyed, since
the Scheduler will delete tasks that are completed otherwise. This is a
temporary workaround until the project is upgraded to use the C++11
std::shared_ptr.

Now, if a sound finishes playing and the associated Scheduler has been
destroyed, then the Sound object will signal the Task, and then the Task
will just destroy itself without any other side effects.

While in here, did some cleaning up of the Scheduler (clarifying
documentation and type/field names).

Also, fixed a small issue in Camera.h where the type qualifier was used
in a function prototype, which is a warning in Visual Studio and a build
break in Clang. :(