Thread instantiation must happen via placement operations

It's possible for the created thread to attempt to make use of m_thisThread before it's actually been moved out of the rvalue and into its permanent home.  To prevent this from happening, we completely avoid the earlier strategy of performing a move, and instead place the thread type in the memory allocated for it.  This happens before the corresponding thread is started.