[threads] Replace use of W32Handle by MonoOSEvent for MonoThreadInfo exited event (#3659)
* [mono-threads] Make thread wait platform specific
* [mono-threads] Replace thread w32handle use by event
This allows use to remove the MonoThreadInfo dependency on the w32handle on posix.
* [w32handle] Move them to metadata
w32handle are purely for managed support, and they shouldn't be used in the runtime.
* [mono-threads] Factor open/close thread handle
* [mono-threads] Factor exit thread
* [mono-threads] Factor platform register/unregister thread
* [mono-threads] Use ThreadHandle on all platforms
* [threads] Fix mutex abandonning for main thread
According to the comment, the intent is to abandon the mutex hold by the current thread. This intent was conveyed by the previous code when the threading code was still in the io-layer.