added udp/tcp in/tcp out,  multiplexing

Ignore-this: 3b1b1120881c6b5a4cda73d5f24953b3

Previously, the connection manager did not guarantee that TCP connections would
be checked for messages if there was a flood of UDP connections. I added multiplexing
across the sockets to guarantee that all sockets would be looked at for incoming messages
by doing a fair round robin on the connections.

darcs-hash:20130505183128-c21fe-b7bbe234cc826629ae31ad08a0337915f42938d4