Simplify implementation of UDP clients.

Instead of creating a source output for each client, simply
keep a list of the UDP sockets and send data on those sockets.

The session management will consist of removing/adding to that
list of sockets.

The source output is created once at module init time.