Put the pthread_create() code into a start method to give people more
choice on when their thread code actually starts running.
In the destructor, wait for the thread to finish before continuing with
the destruction. This avoids accidentally calling Thread::Run because
the outer object is already decomposed.