support non ascii inputs in write_http_body

this makes `write_all` behave correctly when dealing will strings that have multiple bytes per character (like in UTF-8).
this is fact solves the encoded size vs byte size difference, but the `byteslice` method returns a string with the original string encoding and this mean we must rely on the IO object to write the string bytes and not chars (assumes a ASCII-8BIT encoding). wonder if this is assumption is correct or wishful?