Refactor out some stuff to CMake tests

In response to the discussion in #163, I have tried to refactor out some stuff to CMake tests.
CMake is surprisingly powerful and many ugly preprocessor conditionals was removed, but also a few doubts raised.

The tests for following items are moved or created:
CPU byte order
Size of integral types
Atomic operation support
Byteswap support
codecvt library support
```std::wstiring``` support

I doubt that:
Of course these changes make TagLib more dependent on CMake. It no longer compile without config.h and I had to remove HAVE_CONFIG_H switch. Is it OK?
CMake's ```TEST_BIG_ENDIAN``` command seems to support cross-compiling. For example, ```cmake -DCMAKE_CXX_COMPILER="arm-linux-gnueabi-gcc"``` on x86 Linux seems to work. But I'm still not clear it actually detects the nature of the target system, not the host system.