Feature/process handling

This PR vastly improves our handling of background processes

* New: processes table (and associated module) for tracking processes we have started
* New: on shutdown, stop any background processes that are running
* New: on CTRL+C, stop any background processes that are running
* New: --persist-processes switch to override shutdown actions
* New: list-processes command shows background processes that are running
* New: kill-processes command stops any background processes that are running

+ assorted bug fixes to the Shell module along the way