C++11 concurrency

This patch removes pthread in favour of plain C++11 concurrency classes.

I was going to introduce a typedef for `boost::thread` but it means adding complexity in the `CMakeLists.txt` to search for boost and link it to the library. The library is already using `<atomic>` without any fallback so I assume it is safe to use `<thread>`, `<mutex>` and `<condition_variable>` directly.

The `benchmark_test` runs just fine with the changes on my PC. Hopefully this will help in the effort to get a Windows port working!
Creating threads in a constructor means that `this` is not fully constructed. In this case there are no `virtual` functions, nothing is happening in the body of the constructor and the order of the class members has the background thread last - so everything should be OK. :worried: