Eliminate GetSysDirectories and instead provide a new function: GetSysDirectory.

*I suggest thoroughly reading over this code before merging to make sure I didn't miss anything, since this can mess a lot of stuff up if I messed up. I'm not perfect.* :)

On Win32, call InitSysDirectories before the emuthread starts just to be safe.

This is more of a cleanup pull request than anything. It's really silly to keep determining the system directories over and over(which on win32 keeps doing the read-only test over and over), when one can just query GetSysDirectory with which directory one wants.