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.
This line is executed for initial SETTINGS exchange in connection preface, i.e. only once per connection.