Finish #525 for relay messages: Only parse messages at the last instant.
This branch is the final part of #525 (closed). It comes with a bit of a large refactor at the start, where I make cell bodies persist longer, and get copied much less often (thus finally fixing part of #7 (closed)).
This is not only an improvement for a side channel, but it also simplifies our code, and tends to expose bugs. While working on this I found #769 (closed), #773 (closed), and #774 (closed). Once this is done, I'll resolve those.
Closes #525 (closed).