Bug 703181 - Work around libsoup's failure to recover from NTLM auth failure

Left to its own devices, libsoup will end up with NTLM authentication
permanently in SOUP_NTLM_FAILED state, even if we give it a new password.

Even without winbind/ntlm_auth in the picture, this was a problem. If a
user mistyped their password once, it wouldn't be accepted on the second
attempt even if they did get it right.

With automatic NTLM authentication being attempted, this failed state was
happening even more frequently. Hence the reversion of commit addcca8 when
it was noticed (see bug 703181 comments 20-21).

Proper fixes are going into libsoup, of course, but this serves to work
around it for now by cancelling the message when we can't authenticate.

(cherry picked from commit ba4f47aa266d5e36ad0077d575524330c8038402)
Bug 732850 - GSSAPI authentication doesn't need a password

Add get_without_password() method for EWS sources, and make it return
TRUE for GSSAPI authentication.

(cherry picked from commit 78afd10aa511192ff039d1668e1cb4eae0bb5b5b)
Bug 703181 - NTLM authentication doesn't (always) need a password

Now that we have the get_without_password() methods, and now that we know
how to work around the libsoup bugs with recovering from failed NTLM
authentication, make it do the right thing when Samba's ntlm_auth is
available too.

The ews_connect_check_ntlm_available() function is lifted directly from
Milan's patch at https://bugzilla.gnome.org/703181#c26

(cherry picked from commit ec6ffbb10850bb65e822ee7f390e32a5a441a64d)