Fixes #927 (terminate child processes) for linux systems

Fix this by:
- Using linux process groups and session identifier to track created processes
- Automatically send SIGTERM to processes when needed
- Use SIGTERM handler in subprocess to call setup_module.stop()
- Use boolean flag to ensure stop() is only called once
- Removes checks for KeyboardInterrupt from subprocess (this has known bugs with multiprocessing)
- Removes check for system exit from subprocess, not required