Remove the unused ThreadEngine::GetName() method from both implementations
Remove empty ThreadEngine constructors and destructors
Change allocation of ThreadData to be physically part of the object containing it
Make Thread::state private
Move and rename ThreadData::FreeThread() to ThreadEngine::Stop() and document what it does
Move and rename class ThreadData to ThreadEngine::ThreadState
threadengine_win32 Don't ask for the thread id of newly created threads pointlessly