OS X compatibility fixes

Code fixes for compatibility with OS X, see https://github.com/minetest/minetest/issues/1242. I have tested this on OS X and Linux. Some code is borrowed from github.com/constcast/vermont, which is also GPL'ed.
Macros should wrap arguments in `()` (as in `semaphore_wait(*(s))`).  And there should be spaces after commas.