Add ability to use "unconnected" UDP sockets

Add support for using "unconnected" UDP sockets that aren't bound to a
particular listener/target. Simplifies the Multicast transmit use case
substantially, and makes it possible to determine where UDP datagrams
originated, among other things.