Support individual messages which exceed around 64k.

Python's socket.recv doesn't support sizes in the neighborhood of
64k.  To be safe, never try receiving, or sending anything larger than
16k.  Add unit test to verify we obey this.
Update history to include most recent fix.