Add UDP socket support

Closes #27

PacketConns() has been added and corresponding test. 

Returning `error` is not necessary but done to maintain consistency with Listeners(). Returning `error` on Listeners() is also not necessary but kept so as not to break the API