soup-message-io: do an async close when doing non-blocking I/O

When using chunked encoding, SoupBodyOutputStream needs to write the
final "0" chunk when it's closed, and thus may block. So we have to do
an async close in the non-blocking case.

(This also requires changing continue-test to not trace "finished"
events, since it becomes unpredicatable exactly when they'll happen
now.)

https://bugzilla.gnome.org/show_bug.cgi?id=727138