camel-sasl-gssapi: Generate correct error messages for non-krb5 mechanisms

This code is littered with assumptions that GSSAPI means krb5. Let's fix
at least some of them, since HTTP Negotiate means SPNEGO, not just krb5.

Discussed as part of bug 732850.

[dwmw2: Some fixes and refactoring of Daniel's original patch]
camel-sasl-gssapi: Use SPNEGO for HTTP auth not bare krb5

Discussed as part of bug 732850