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 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.