Add http::chunked_encoder:

This transforms a ConstBufferSequence into a new ConstBufferSequence whose
data is encoded according to the Content transfer encoding rules of RFC2616.
The implementation does not copy any memory but also does not coalesce
buffers into larger ones if the input data is in small pieces.
Reviewers: @rec @donovanhide
This needs to be split into several paragraphs.  

The sentences seem in a jumbled order.

What does this mean?  " The function returns the number of bytes that would be consumed in the input sequence if the entire output sequence is consumed.

It seems like you're returning some subjunctive value - not the number of bytes that are consumed but the number that would be consumed if...?  It doesn't make sense to me...



"If prepare is called again
        before all bytes in the output sequence are consumed, undefined
        behavior results."

Rephrase as positive - tell people what TO do, not "what not to do" - they make fewer mistakes that way.

"`prepare()` may only be called again after all bytes in the output sequence are consumed, or undefined behavior results."