Move disconnect() ahead of returns to fix TCP RSTs

Also, drains the remaining bytes in the response to allow a TCP FIN-ACK
to go out. Changes the User-Agent for shorter messages and signature
testing.