Process pool to replace command execution threads.

Replaces #891 (which, pre cylc-6, targeted the wrong branch)

A process pool to handle execution of job submission, event handler, and poll and kill commands.
Replaces batched command execution in threads. 
This line is giving me traceback:

```
Traceback (most recent call last):
  File "/home/matt/cylc.git/lib/cylc/run.py", line 76, in main
    server.configure()
  File "/home/matt/cylc.git/lib/cylc/scheduler.py", line 224, in configure
    self.configure_suite()
  File "/home/matt/cylc.git/lib/cylc/scheduler.py", line 713, in configure_suite
    self.proc_pool = mp_pool( self.config.cfg['cylc']['shell command execution'])
  File "/home/matt/cylc.git/lib/cylc/mp_pool.py", line 98, in __init__
    self.type, self.pool_size())
  File "/home/matt/cylc.git/lib/cylc/mp_pool.py", line 155, in pool_size
    return self.pool._processes
AttributeError: 'Pool' object has no attribute '_processes'
```