No need to detect partial datagrams: a new client will get a new socket FD and a new buffer.
Minor clean up and lots of docstrings.