Don't set -Wno-write-strings on APPLE

For some crazy reason, this ends up getting replaced with
"-Wnorite-strings" at link time, which causes g++ to bail complaining
about unknown options.
Adding an Apple specific semaphore implementation

Apple is not truly POSIX compliant as they do not support unnamed
semaphores through the POSIX interface. This change creates a new class
that exposes the low-level Mach semaphore implementation for unnamed
instances, and keeps the POSIX wrapper for named instances.

I suggest that MRPT moves to using Boost's platform-independent
semaphore implementation:

http://www.boost.org/doc/libs/1_55_0/doc/html/interprocess/synchronization_mechanisms.html
Fix formatting
Changelog update