Backport of core PR15849.
The first commit disables `thread_local` on some platforms and is not
ported:
- The Darwin exclusion is no longer needed since D5514.
- The MinGw exclusion does not seem necessary, at least with our
version.
The tests run fine on Windows, both 32 and 64 bits.
This introduces a number of bugs:
- This is breaking the build for some *BSD.
- This makes some Unix tools inefficient, like `ps` or `killall`.
- Some thread names are truncated and cannot be differentiated.
The fixes will be ported in their own diff for readability.