Add zmutex_try_lock

dds this and zmutex is currently missing a try_lock function.
This pull request adds zmutex_try_lock and a corresponding unit test.

Please test the WINAPI implementation before merging this, I can currently only test the pthread implementation