Improved GCC compatability for upcore & upcore_tests.

GCC 4.4 now fully compiles the upcore, uptest, and upcore_tests
targets. The upcore_tests test suite runs and completes, although
several test cases fail. This update has many other changes in
order to get it to compile for Linux under GCC:

- Added a full implementation of the C++11 atomics library for
  build environments lacking the library. The GCC x86-64 version
  still needs to be optimized for fundamental types, but the
  MSVC x86-x64 optimized implementation is mostly finished except
  for double-machine word sized atomic objects.
- Mostly implemented the filesystem library for POSIX platforms.
- Cleaned up the C11 threads layer on both Windows and POSIX
  targets for better compatability with the N1570 C11 Language
  standard.
- Fixed a pointer referencing bug in the malloca implementation
  for GCC/Clang.
- Added support for the POSIX mbsnrtowcs and wcsnrtombs functions.
- Added u*sntou*s functions to cuchar.hpp that behave like the
  mbsnrtowcs / wcsnrtombs functions.
- Cleaned up the unicode string library code for better
  readability and to match the rest of the upcaste code base.
- Changes to various source files so that they fit within a
  maximum of 132 columns.
- Removed some preprocessor defines that polluted the global
  namespace and might have interferred with additional libraries.