Some supervisor rework

- Add supervisord.package
- Add supervisord.stateDir
- Set pidfile, logdir and childlogdir in the config,
  to make it easier from command line to override
  the single values
- Create a wrapper for supervisord and supervisorctl
- Only pass flags to supervisord if STATEDIR is non-empty
- Allow passing custom flags to supervisord and supervisorctl
- Add passthru.config to the resulting env
- Use stdenv.shell, because /bin/sh shebang is not patched

The config.supervisord.bin is very useful in nix dev environments,
where you can just run supervisord to start all services and
supervisorctl to manage the services.

Also setting a config.supervisord.stateDir allows to run
supervisord from any directory in nix-shell. Useful if you
have multiple clones of your repository, and still want to
share the services state.