Use file readers and writers for sockets; factor out SOCKS5 address reading
Implement receiving UDP packets via recvfrom()
Allow for flags parameters and fix sendto() and recvfrom() for TCP sockets
Support connect(), send() and recv() for UDP sockets

Returns EAGAIN if recv() filters a packet.
Update readme about UDP
UDP relay address is proxy_peername, not proxy_sockname
Substitute proxy IP address for relay
Add base class with a workaround for overriding methods in Python 2