Explicitly initialise SWATCH thread pool to run multiple actions in parallel
At the moment, the SWATCH thread pool isn't initialised, and so by default only has one thread. This branch adds a new function that initialises it so that the number of threads for running SWATCH actions is the lesser of the number of actionable objects and the number of cores.