fix shutdown logic

* exit cleanly if interrupted and not running garden ourselves
* exit cleanly if stager was never started
* add printlns to ensure we're cleaning up in e.g. CI
detect if another etcd is already running

This commit will save many man-hours.
clean up things we started even if we fail fast
test executor snapshotting via restarting it

Previously the tests would import the taskregistry from executor. This
replaces them with more behavioral/black-box set of tests, so that inigo no
longer depends on the executor codebase.