Limit the size of the thread pool
This merge request closes issues #26 (closed) - i.e. it updates the SWATCH cell's "run control" operation so that:
- The size of size of the thread pool is not larger than the number of CPU cores / hyperthreading units, as returned by
boost::thread::hardware_concurrency()
- The 'engage' transition will only reset the thread pool if its size needs to change