sync: add semaphore implementation
Moved semaphore implementation to details. Some minor fixes.
Added GetSystemTimeAsFileTime definition when it is absent in WinAPI. Made constants as enum so that they can be used in switch/case statements. Added Boost.Sync time_units and mutex for Windows.
To avoid name clashes with Boost.Thread, renamed boost::detail::win32 namespace to winapi. Also renamed the directory with headers accordingly. Adjusted Boost.Chrono and Boost.Sync to reflect the changes.
Fixed compilation problems with MinGW-w64.
Enabled #pragma once for all compilers that support it, not only MSVC.
Remove obsolete MSVC check from pragma guard

 git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.
allocator_utilities: Remove obsolete MSVC version check.
Add BOOST_USE_INTRIN_H support; remove #pragma intrinsic, not needed and not supported on Intel.
Finished POSIX condition_variable, working on Windows.
Detail: Remove obsolete MSVC version checks.
Exception: Remove obsolete GCC version check.
Container: Remove obsolete GCC version check.
Boost.Sync: Added preliminary implementation of a waitable timer for fixed time point waits. Updated WinAPI functions to contain the required APIs.
Fixed WinAPI compilation. Ported timed mutex to waitable timer. Windows time points are now aligned with FILETIME to reduce conversion overhead when used with waitable timers.