Promiscuous: allow to set group ownership of sockets, semaphores and shm

If the value of the JACK_PROMISCOUS_SERVER environment variable is set to the
name or gid of a valid UNIX group for the current user, then all filesystem
objects (e.g. sockets, semaphores and shared memory segments) will be created
with this group as owner, and the permissions will be set to 0660.
If not, the permissions will be set to 0666.
This remove the requirement to use a too permissive umask for promiscuous mode
to work properly.
Split JackWaitThreadedDriver's Execute method

This makes it possible to use JackWaitThreadedDriver as a base class
for a non-threaded version.
Add JackWaitCallbackDriver

This wrapper driver has the same usage as its parent JackWaitThreadedDriver,
but for non-threaded (callback) drivers. After waiting for Initialize to
return, its main thread simply ends instead of calling the driver's Process
method in a loop. The decorated driver, which must extends JackRestarerDriver
instead of JackWaiterDriver, can restart the wait cycle by calling its
RestartWait method.
Add JackProxyDriver

This driver is very similar to the JackNetDriver, but instead of connecting
through the network, it connects to its upstream server through standard jack
API. So it can only reach local servers which must be running as the same user
or in promiscuous mode.