new hpss encoding
We should update the smart transport encoding. The following properties would be useful:
* include a "what encoding are we using" right at the start
* include the client and server version respectively for logging purposes
* parameters shouldn't be limited to single-line strings; it would be useful if they could include lists or dicts
* the protocol and library should not require the entire body content to be held in memory, or its length to be known before transmission
This can be done compatibly with 0.15 by specially recognizing lines that look like a request from that version.