Fix gss_krb5_set_allowable_enctypes for acceptor

The acceptor implementation of gss_krb5_set_allowable_enctypes (added
in 1.9.1) is intended to restrict the acceptor subkey negotiated by
krb5_rd_req().  It uses the same approach as the initiator, calling
krb5_set_default_tgs_enctypes on the context.  This has the unwanted
side effect of restricting the encryption key of the ticket, because
krb5_decrypt_tkt_part has checked krb5_is_permitted_enctype on the
ticket encryption key since 1.8.

Instead, use krb5_auth_con_setpermetypes on the auth context.  This
list is only used for session key enctype negotiation.  Also add
automated tests to verify that gss_krb5_set_allowable_enctypes works
as desired.

ticket: 7688 (new)
target_version: 1.11.4
tags: pullup
Syntax change for krb5.conf to use URL form

krb5.conf syntax is now:
`kdc = [(udp|tcp)://]<addr.of.kdc>[:<port>]`.
Expand socktype usage to protocol enumerator

The protocol enumerator retains all socktype definitions (preserving
compatibility) while allowing for new protocols to be defined.
Add HTTP transport for traffic

HTTP transport uses base64 encoding and POST requests to encapsulate
messages.  krb5.conf syntax is now:
`kdc = [(tcp|udp|http)://]<addr.of.kdc>[:<port>]`.
Enable kpasswd protocol to use HTTP for transport

Forces kpasswd to respect the transport protocol defined in krb5.conf
instead of ignoring it and choosing UDP.
Allow specification of page to POST to for HTTP

krb5.conf syntax is now:
`kdc = [(tcp|udp|http)://]<addr.of.kdc>[:<port>][/<page>]`
Add HTTPS transport for traffic

krb5.conf syntax is now:
`kdc = [(tcp|udp|http|https)://]<addr.of.kdc>[:<port>][/<page>]`
Update krb5.conf manpage for new kdc syntax