Run at/background jobs in their own process group

Re-implement job kill using the same approach as job poll.
Add dedicated test battery for job kill.
cylc dependency graph: fix handling pre-initial over-bracketing.

This fixes a bug where unnecessarily bracketed clauses cause a crash
when they contain pre-initial cycle references. This is because the
unnecessary brackets in the graph persist through to the data structure
that is fed to the cleanup algorithm. These are now removed.
cylc dependency graph: remove debug statements
cylc restart: fail for corrupt status in state dump
cylc restart: fix state backwards-comp.
Merge pull request #822 from benfitzpatrick/dep-syntax.fix-pre-initial-overly-bracketed

cylc dependency graph: fix handling pre-initial over-bracketing.
Merge pull request #821 from matthewrmshin/kill-job-process-group

Run at/background jobs in their own process group
Merge pull request #824 from benfitzpatrick/cylc-restart-fail-corrupt-state-dump

cylc restart: fail for corrupt status in state dump