Switched to boost::detail::lightweight_mutex instead of boost::mutex from Boost.Thread to avoid false dependencies on Boost.DateTime, Boost.Chrono and Boost.System. This should hopefully resolve linking problems on MinGW.
Attempt to fix linking tests on Windows.
Attempt to fix tests on MSVC
Corrected macro name.
Added macro checks for more ARM targets. The macros were taken from smart_ptr/detail/spinlock_gcc_arm.hpp.