soup-session: Force cleanup of REMOTE_DISCONNECTED conns for sync sessions

get_connection() assumed that REMOTE_DISCONNECTED connections would get
implicitly cleaned up elsewhere in the code, which is true for async
sessions, but not sync ones. This could lead to connection exhaustion and
hence hangs.

Closes: https://bugzilla.gnome.org/show_bug.cgi?id=703463
(cherry picked from commit 2081c31235e7c2b3a15fa0a819631106cf4c3efa)
Bug 708006 - libsoup fails to close connection when message cancelled

We need to clear priv->reusable when we send a request, *even* if we're
only resending a request that was already tried once (as with NTLM
authentication). Otherwise, cancellation of the pending, restarted,
request will not properly close the connection as it should.

(cherry picked from commit b63d08471391c35b7c67d414f24fecf0d1810c74)
Bug 703186 - fallback from automatic NTLM auth not working

There were two issues. Firstly, when the automatic NTLM authentication
failed we were setting conn->state to SOUP_NTLM_FAILED. So although we
would emit the 'authenticate' signal and obtain a password, we'd never
actually *try* it. We have the SOUP_NTLM_SSO_FAILED state for this, which
makes it work.

Secondly, the resulting 'authenticate' signal we being emitted with the
'retrying' property set, even when it was the first time we actually asked
for a password. This was confusing Evolution (bug 703181 comments 1-3).

Fix the latter problem by making soup_auth_ntlm_is_connection_ready()
return TRUE when the state is SOUP_NTLM_SSO_FAILED. That makes
auth_got_headers() do the right thing, and Evolution is happy again.

With this fixed, Evolution will now automatically try to connect to an
Exchange server using automatic NTLM authentication, and will fall back
to asking for a password only if it actually needs to.

(cherry picked from commit 2b9345730cd95ea9efb4e1b78d40574f6c316f96)