Fix t_s4u2proxy_krb5 cleanup

Unlike most GSS test programs, t_s4u2proxy_krb5 uses a cleanup
handler, so we have to be careful to initialize everything we clean
up--particularly service2_name, which is initialized after a possible
goto.  Also, remember to release acceptor_name.
Update windows/README

The build instructions have changed somewhat, as have the requirements
for a build environment.
The default behavior for KRB5_CONFIG and KRB5CCNAME has also changed.
Attempt to remove mention of overly specific Windows versions that
are now quite old when the behavior persists in newer versions of Windows.
Document the usage of DNS by default and the reduced need for a large
krb5.ini file.
Talk a little more about the LSA cache.

The kerbsrc.win target is no longer supported.

ticket: 7363 (new)
target_version: 1.10.4
tags: pullup
Do not add empty dir to the include search list

windows/leashdll/include contains only a krb4 directory.
We have a dubious need for the latter through AFSroutines.c,
but the former can be eliminated.
Update FILES and WINFILES for kerbsrc.zip

Note that windows/wshelper/* was removed from the list, as it doesn't
exist.

The kerbsrc.zip target is slated for removal, but attempt to make it
more correct before removing it should it need to be revived.

Submitted by: Blaine Elzey  blaine.elzey at alcatel-lucent.com

ticket: 7364 (new)
Remove kerbsrc83

It's been a long time since systems were limited to 8.3 format
for file names.  No one should be thinking to try and build this
target, and if they do, we don't need a custom error message anymore.
Clean out the unneeded code from the Makefile.in.
Remove kerbsrc-nt

NT is long-gone; we don't need to keep a special-case error message
around telling people not to use it.
Clean out the unneeded code from the Makefile.in
Remove kerbsrc.win

It has been unloved and broken repeatedly for many years, requiring
updating of several variables whenever new directories are added
and similar tedia.  It was originally intended to avoid the need
for Unix utilities on Windows, but Microsoft provides the Utilities
and SDK for UNIX-based Applications which is enough rope to do a
native build.

Leave behind a warning message to anyone who does try to build the
target.

Clean up some now-unused infrastructure in the build system.

ticket: 7367 (new)
Remove some dead Makefile code

FILES is unused in util/{ss,et}/Makefile.in; some other unused
variables were nearby.
Fix a couple of typos
Add an input ccache get-init-creds option

Add a krb5_get_init_creds_opt_set_in_ccache() function.  An input
ccache may hold configuration data which the client libraries can
use to influence their decisions.
Use octal escapes for non-printable parts of {str}/{lenstr}/{data}

When adding {str}, {lenstr}, or {data} to trace output, scan for
bytes which might be non-printable, and add them as octal-escaped
versions of themselves if any are found.
Add a -C flag to dump configuration entries
Add "pa_types" configuration to ccaches

* When producing preauth data, keep track of the types of padata which
  the module that produced the data can handle.  Originally this was
  just the type of data we'd produced, but that caused problems for
  PKINIT.
* After obtaining credentials, store that list of preauth types as a
  "pa_types" configuration item in the out_ccache.
* Read a list of allowed preauth types from an in_ccache, if possible.
* If we have a list of allowed preauth types, skip any "real" modules
  which aren't in that list.
Add "pa_config_data" configuration to ccaches

* Read a "pa_config_data" item from an in_ccache, if provided, and add a
  callback which client preauth plugins can use to retrieve a string
  value that's keyed by a string.
* Add a callback which client preauth plugins can use to provide string
  key/value pairs to be stored in the ccache.
Misc fixes for anonymity and crypto agility

* Agility fix: don't try to free an uninitialized keyblock.
* Anonymity: don't try to sign data when we have no signer specified,
  and don't try to add signed attributes then, either.  Don't bail on
  unsigned data: just note that it's not signed, since that's expected
  now, and carry on.
* Reset the prompt_types list immediately after the prompter callback
  returns, as is done elsewhere.
* Use a temporary variable to hold the chain-inclusion setting for CMS.
* Whitespace tweaks.
* Print a debug message if we're unable to locate the matching private
  key for a certificate when we've just loaded both of them from PEM
  files.
Use config storage for client identity selection

* Keep track of the names of client identities when we load them.
* Store the client identity we just used when we create or retry a
  client request.
* If we read a client identity from the configuration, treat it like the
  KDC does: pick the "this is it, there is no other" logic branch.