add threaded compilation

concerning and closing #465 

this also seems to reduce runtime for travis, as it uses threads for the tests.

there might be errors popping up due to tests that are not independent of other tests! (One can see this after ```make cleanup``` which is the state the travis machines have and run ```make test testthreads=X```)