cmake: add openMP support

this is slightly hacky, but the OpenMP support that was included in
the build system did not work properly without hacks in the cmake
modules which wanted to use OpenMP
implement support for thread parallel linearization using OpenMP

thanks to the context objects concept this was relatively easy. Note
that this requires you to use an OpenMP compatible compiler, i.e. any
supported GCC version will do, but the current CLang (3.4) won't.