Both PAL_Win32 and PAL_CPP11 have the exact same `WorkerThread` implementation (copy/pasted). This change extracts out the `WorkerThread` class from the Win32/CPP11 files _verbatim_ and puts them in a separate WorkerThread.hpp|cpp. The only change to the WorkerThread class is the introduction of an `IWorkerThread` interface and `WorkerThreadFactory`. This interface will be useful for when MIP creates its own custom WorkerThread that dispatches tasks to an external DLL.
I considered creating a separate PAL_CoreLib or PAL_MIP implementation, but it would everything except `WorkerThread` with the existing Win32/CPP11 PALs, so that seemed like the wrong abstraction.
I would like to merge this change to the main onesdk branch so that when I create the custom CoreLib/MIP implementation in a separate branch (for now), those changes will be very localized.