Reworked the Systems code. Systems now have preframe, frame, and postframe
methods that run before, during, and after a frame, respectively.
Systems::get< ClassName >( SystemType ) was removed in favor of singletons (e.g. ClassName::get())

Added a Scheduler system. The scheduler controls the framerate
of the game, invoking a frame every few milliseconds.
The delay between frames can be set at runtime, and defaults to 16ms (around 60 FPS).

LuaInstance was reworked.
Fixed several improper usages of lua_pop() that were clearing the entire stack instead of just the top element.
popString now takes a ustring& instead of a uchar* and outputs a copy of the string as it should.
There is now a pushString that takes a const ustring& instead of a uchar*.

CircularDependencyException has been removed.
Systems can now have circular dependencies as a result.

Added SingletonException. This exception thrown when two or more singletons
of the same type are instantiated at the same time.

Loggers::write() is now thread safe (and by extension, logInfo, logError, etc).
While a write is being performed, the thread acquires a lock on the loggers,
ensuring that no two log writing operations will take place at the same
time and interfere with one another.

Dummy Graphics, Input, and Audio systems have been added.

EVENTS was removed as a system type. SCHEDULER, GRAPHICS, AUDIO, INPUT, and PHYSICS were added.

Added BS_BUILD_DEBUG define to debug builds of Brimstone's Visual Studio project.