refactor(net.PacketConn) program against PacketConn

this way it's possible to perform extensive testing using a fake,
in-memory "chaos monkey" packet connection. This in-memory connection
can deterministically...

drop packets
duplicate packets
re-order packets
maliciously modify utp packet headers
send packets to closed connections
remove todo
todo(listener) stub out function for in-memory packet conn
Merge pull request #6 from maybebtc/master

use net.PacketConn interface