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.
I think I'm still missing something.. If we expect to process only one frame, then why add the logic to iterate or an array? On the other hand, if you pass in an array, 338 will end up wrapping an array inside of another array.. that you'd have to flatten?