Minor tweaks, begun implementing multi-threading

More improvements to stability and compatibility. I've begun
implementing multi-threaded coding in order to make this program usable.
Currently, the game freezes on launch because it can't run everything in
one thread at the same time. Therefore, dividing up tasks amongst
different threads should make the program usable. I'm not used to
multi-threaded programming though so if anyone is good at it, I'd
appreciate any help or advice.