Update Haiku support (#15674)
* Build System.Native.
* Disable `pthread_mutexattr_setprotocol` use, since it returns EINVAL on Haiku.
* Disable the `strerror` cache on Haiku. On Haiku, errors begin at `0x8000_0000` like a Win32 HRESULT. This means the indexing would be on negative numbers, which is a no-no. There are a few alternative ways to keep it though: hashtable, tuple array, offset...
Unfortunately, doesn't build all the way through. Has a tendency to bomb out during building `build-unix`. Will investigate why.