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. 
That part is pretty non-essential - can you just have pool_size() return some arbitrary number for the moment, and carry on?  The only multiprocessing.Pool internals that is essential(ish) is in is_dead(), used in scheduler.py.