Include stdio.h for definition of stderr.

This seems to be required on (some versions) of glib.
Don't use std::unordered_map with Linux.

On recent versions of Ubuntu, libstdc++ provides an unordered_map header but doesn't like it to be used unless --std=c++0x or --std=gnu++0x. The old tr1 version is still available, however.
Fix 'tesla' script with Ubuntu's /bin/sh.
We don't actually use limits.h any more.
Move some LLVM config up to top-level CMake file.

We will need this information for running libtesla unit tests on some platforms, so move the discovery of LLVM config information up to the top-level CMake file.

This does not *apply* what we learn to e.g. default include directories.
Support passing extra cflags to unit tests.
Move platform-specific hacks to top-level CMake.

We're about to add a Linux-specific hack that is required in libtesla, so move the site up to the top-level file.
Work around Linux include directory problem.

On Linux, it seems that the 'clang' driver and the Clang tooling framework don't expand their cflags in the same way. In particular, the 'clang' driver passes -resource-dir ${LLVM_LIB_DIR}/clang/${CLANG_VERSION} to clang -cc1; it seems that we need to pass it explicitly to the TESLA analyser, too (but only on Linux!).

In the longer term, we should figure out what's going on here and fix it upstream. In the meantime, this workaround... works.