Structured Overlay support (RIPD-351)

This one seems to work correctly. Many bugs fixed in http parsing and printing.

Apologies that this mixes cleanups with implementation. Its been a long running branch, and I started and stopped working on it numerous times. All the changes are interdependent on the other changes so it was not practical to separate. Future commits will have better separation.