_handle_send_complete(): honor queue, don't send directly

In _handle_send_complete() we should not bypass the queue and
send what we read from context.outfp immediately.  Today it
works but other http code makes the assumption that everything
is serialized into the queue.  Future code may follow this
assumption and eventually break http.

Better to honor the queue and eventually we will do
optimization when it's clear we need it.

While here, use BytesIO in _handle_send_complete() regression
test because existing code (using StringIO) is broken by
this change under Python3.
http_clnt: suppress unnecessary check

We already make sure that context.left >= 0 in _handle_data()
main loop.