Don't clear GSSAPI state between each exchange in the negotiation

GSSAPI doesn't work very well if we forget everything ever time.

XX: Is Curl_http_done() the right place to do the final cleanup?
Don't abort Negotiate auth when the server has a response for us

It's wrong to assume that we can send a single SPNEGO packet which will
complete the authentication. It's a *negotiation* — the clue is in the
name. So make sure we handle responses from the server.

Curl_input_negotiate() will already handle bailing out if it thinks the
state is GSS_S_COMPLETE (or SEC_E_OK on Windows) and the server keeps
talking to us, so we should avoid endless loops that way.
Fix negotiate auth to proxies to track correct state
Add macros for common GSS-API mechs and pass them appropriately

- Macros: KRB5_MECHANISM and SPNEGO_MECHANISM called from
  HTTP, FTP and SOCKS on Unix
Remove checkprefix("GSS-Negotiate")

That auth mech has never existed neither on MS nor on Unix side. There is
only Negotiate with SPNEGO.
Add feature and version info for GSS-API (like with SSPI)
Deprecate GSS-Negotiate related macros due to bad naming

- Replace CURLAUTH_GSSNEGOTIATE with CURLAUTH_NEGOTIATE
- CURL_VERSION_GSSNEGOTIATE is deprecated which
  is served by CURL_VERSION_SSPI, CURL_VERSION_GSSAPI and
  CURUL_VERSION_SPNEGO now.
- Remove display of feature 'GSS-Negotiate'

No macros were removed but deprecated and replaced with new ones.
Make HTTP Negotiate auth opts available only if GSS-API/SSPI is available

CLI options and help are available conditionally.
Improve inline GSS-API naming in code documentation