Improve standard compliance for `thread`.
Improve standard compliance for `thread`.

- Make helper functions private to match interface of `std::thread`.
- Use private members, not static, in `thread`.
- Improve encapsulation of internal class `ThreadFuncCall`.
- Migrate to C++ conversion, rather than C-style. Should clarify purpose of each cast.
- Remove non-standard preprocessor macro, replace with private static constexpr variable.

meganz/mingw-std-threads