Draft 14 framer stream

Updates for framer, stream, and connection.

Unfortunately, tests fail between these two commits.
I recommend squash-before-merge (so that git bisect works).

If you find commits are too large, please tell me so.  I'll work harder to make commits smaller.
(aside: mixing || and or's has always confused the heck out of me.. we're ok for now, but as a TODO, i'd love to unroll this into more explicit flow control logic)