cleaning up source, merging GSThread header and cpp, to make it a little easier to read