allow UdpServer address reuse, fixes #5

Some protocols require a UDP client and paired UDP server to send and receive from the same address. While Boost.Asio does allow setting this behavior on the socket, it must be set before bind. At present, UdpServer::accept creates the socket and runs bind immediately afterwards, so some additional API is required.