On some systems, creating threads with the standard std::thread constructor
is not convenient, or downright impossible. For example, some systems require
passing a stack size when creating a thread, but the std::thread constructor
does not allow for that.
This patch adds a non-standard extension to std::thread that makes it
constructible from the native_handle_type. This allows creating a thread
using the underlying system's machinery (e.g. in a factory function),
while retaining the rest of the std::thread API.