Create basic infrastructure for concurrency analysis

The new classes build a basis for the symbolic execution of concurrent
C++ software. The infrastructure requires advanced knowledge of C++11
meta-programming and compile-time type inference. The features we use,
or devised, include "conditional class inheritance" that allows us to
resolve template argument types for built-in arithmetic operators by
also leveraging existing C++11 static type information about integral
types etc.