cleanup with new IOLoop

restarting interrupted IOLoop is unsafe (tornadoweb/tornado#1155).
use py.test fixtures
allow spawning with sudo

alternative to setuid

allows better restricted access, and doesn't require the server to run as root.

Enable with `--LocalProcessSpawner.set_user=sudo`

Since spawning with sudo is complicated, leave setuid as the default.
make shutdown timeouts configurable
test basic spawning