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.
should we move this line into settings method?