Handle Clang's more picky interpretation of GCC atomic builtins.

The "picky" behavior was introduced in trunk before the 3.0 branch,
so we test for a major version of 3 or greater to enable to workaround.

cf. http://llvm.org/bugs/show_bug.cgi?id=11280

Should be safe since a const_cast typically does not emit code, but
enabled just for the pickier clang versions to be cautious.
Revert "Handle Clang's more picky interpretation of GCC atomic builtins."

Will replace with simpler version from upstream master.

This reverts commit 0fd92a726886ae2e3514c7cccf75e1dfb30ed582.
From Ulrich Hertlein, "as discussed on osg-users there is an issue with clang++ on OS X and iOS that results in
the following error:

Users/stephan/Documents/Projekte/cefix/cefix/ios/../../libs/ios/include/OpenThreads/Atomic:244:48:
error: cannot initialize a parameter of type 'void *' with an lvalue of
type 'const void *const'
   return __sync_bool_compare_and_swap(&_ptr, ptrOld, ptrNew);

This can be solved by a cast to '(void*)ptrOld'.  This should be benign since both
'ptrOld' and 'ptrNew' are only read and the cast is in fact in place for all other
implementations as well.

On OS X the cast compiles cleanly on both g++ (i686-apple-darwin11-llvm-g++-4.2 (GCC)
4.2.1) and clang++ (Apple clang version 3.1 (tags/Apple/clang-318.0.54)).
"
Make the corresponding change to the header file.
From Bob Kuehne, build fix for OSX 10.7 SDK.
From Stephan Huber, fixed build for OSX 10.6 and earlier