LB's and workers communicate via a simple protocol
==================================================

They send each other sized network messages.  The network messages
consist of:

- 4-byte data size
- 4-byte request number
- Marshalled data

If request number is 0, the marshalled data:

- resume dict from worker to lb
- None from lb->worker, ignored keep alive

For request number > 0, the marshalled data can be:

- environment dict from LB->worker
- string part of HTTP message body
- '' end of HTTP message marker
- None from lb->worker indicating request cancellation
- (status, headers) worker->lb start response

