WL#7914: Remove custom rwlock windows implementation

Affects: Server-5.7   —   Status: Complete

This worklog consist of three parts:

1) Remove custom rwlock windows implementation.
   Currently we have a custom rwlock implementation that we use if
   TryAcquireSRWLockExclusive() is not supported. But since this function is
   now supported on all our Windows platforms (Windows 7+, Server 2008 R2+),
   it can be removed.
2) Enable SAFE_MUTEX mutex wrappers on Windows debug builds.
   Currently we only use SAFE_MUTEX on non-Windows platforms. SAFE_MUTEX 
   includes extra runtime checks that are useful for debugging.
3) General refactoring of mutex, rwlock and condition variable code.
   Improve consistency, eliminate dead code, replace macros with inline 
   functions, extract to separate header files.

Note that this will only affect the SQL layer and not InnoDB since InnoDB
uses its own implementation.

User Documentation

NF-1: After this WL, Windows binaries will require Windows 7 / Windows Server
      2008 R2 or newer.
I-1: Setting -DSAFE_MUTEX=0|1 when running CMake will now work on Windows.
     It is default on for debug builds.
Refactoring plan:
- Remove macros, have self-contained static inline functions.
- Move mutex code to thr_mutex.h/.c
- Move condition variable code to thr_cond.h/.c
- Move rwlock code to thr_rwlock.h/.c
- Don't defined pthread_* functions on Windows, instead introduce matching
  native_* functions that map to OS primitives (pthread or Windows).
- Move non-pthread related code from my_pthread.h to my_global.h