Added Clang/LLVM compiler support on Linux platforms.

Upcaste now builds correctly with Clang/LLVM on Linux! Currently
only tested against the latest Clang/LLVM 3.3 snapshot, but should
be compatible with Clang/LLVM 3.0 with some minor changes.

The atomics library is just using the GCC implementation when the
Clang compiler is detected. Some work will be needed to write a
version supporting Clang's atomic builtins.

Some additional work may be needed to take advantage of additional
Clang features and optimizations, but so far it appears to be
functional.