Fix warnings about redefining a defined macro

The warnings appear when a dependent project (e.g. Boost.Log tests and examples) builds with link=shared and defines BOOST_ALL_DYN_LINK macro. In this case BOOST_THREAD_USE_DLL is defined by both thread/build/Jamfile.v2 and boost/thread/detail/config.hpp. This commit makes sure that doesn't happen.
Merge pull request #15 from Lastique/patch-2

Fix warnings about redefining a defined macro
Added nested type op_status.
Try to fix phisical_concurrency on PowerPC arch.
fall back to harware concurrency when physical concurrency doesn't works.
protect the use of && when BOOST_NO_CXX11_RVALUE_REFERENCES is defined.
Restore breaking change.
don't close the queue when an exception is throw, don't return empty on wait_pull_pull_front.
don't close the queue when an exception is throw, don't return empty on wait_pull_pull_front.
Fix isse on sync_bounded_queue::wait_push_front and add tests.
disable traces.
fix wait_pull_front issue introduced in previous commit and add more tests.
fix wait_pull_front in case the queue is closed while empty.
Added inline for when_all() and when_any().
Incorporating feedback: removed copyright, removed some ifdefs.
Merge branch 'develop' of https://github.com/boostorg/thread into feedback
Addressing more feedback:
Reverting disabling thread attributes for WinRT.
Created common GetSystemInfo/GetNativeSystemInfo function.
Fix this_thread get_id() bug on WinRT.
Enabled initializing the Windows Runtime in each test for execution. This
is not when using in Windows store/phone applications, just if a desktop
app.