Properly handle use_master in k5_init_creds_get

If we make multiple requests in an initial creds exchange, the
krb5_sendto_kdc call in k5_init_creds_get may flip the use_master
value from 0 to 1 if it detects that the response was from a master
KDC.  Don't turn this into a requirement for future requests during
the same exchange, or we may have trouble following AS referrals.
Reported by Sumit Bose.

(cherry picked from commit a12a5ddb9b932061bad7b83df058c7c6e2e4b044)

ticket: 7650
version_fixed: 1.11.4
status: resolved
Build with Visual Studio 2012

It's more aggressive about enforcing that keywords are not macros
in C++ mode, and has bumped the MFC version to 11.

Keep compatibility with older versions of Visual Studio, appropriately
conditionalized.

(cherry picked from commit 7bca89626e53f258397818a9b0d838a0a3e00f5b)

ticket: 7664
version_fixed: 1.11.4
status: resolved
Fix spin loop reading from KDC TCP socket

In the k5_sendto code for reading from a TCP socket, detect
end-of-stream when reading the length.  Otherwise we can get stuck in
an infinite loop of poll() and read().

[ghudson@mit.edu: commit message]

(back ported from commit 53e5c850e05f011e9e7f25c2032aec51d8b352a9)

ticket: 7508
version_fixed: 1.11.4
status: resolved
Install ccselect_plugin.h

The ccselect pluggable interface was added in release 1.10, but we
neglected to install its header file.

(back ported from commit a1933d02c87e9d78ddbc586d460028aabbd747cb)

ticket: 7671
version_fixed: 1.11.4
status: resolved