Updated Test::DaemonProxy to support arbitrary pipes

This is in anticipation of new feature where any number of
file descriptors can be passed to daemonproxy and it makes
them available as fd_# objects.
Fixed some bugs in service.c related to control pipes
Every controller now has an id number, for logging
Redirect stdin/stdout to /dev/null if they are in use as command streams

Previously, a config file could be specified on stdin, and then a service
could be defined thich used stdin, and the service could consume part of
the input meant for daemonproxy.  Likewise, stdout might be an event
stream for interactive use, and a service could write to it.

Now, if interactive mode or config file is using stdin/stdout, the stdin
and stdout named handles will refer to /dev/null.

Also moved around a bunch fo the initialization logic.

Also, at startup if there are more descriptors than just the usual 0,1,2,
they will be given names like "fd_3", "fd_4", etc.  This allows use cases
where people pass additional handles to daemonproxy and subsequently
hand them off to services.

fixes #39