Added a signal to indicate that the tcp socket send buffer is empty

Without this signal the only non-blocking way of transmitting a file is
to pass all the data at once to QHttpResponse::write(). Memory is
reserved for the full amount of data which multiplies pretty quickly
when there are multiple concurrent transfers.

This signal provides interface for the client code to wait until the
previously written data has been sent and new data can be written to the
socket.

For example a 1GB file can be split into 64k blocks without needing to
load the full file into memory.