Truncate all terminal lines when we clear scrollback.

Now Jacob has reminded me that 'resize-no-truncate' was already on the
wishlist, I notice that it suggested Clear Scrollback should remove
the preserved information off to the right. On the basis that that's
(at least partly) a privacy feature, that seems sensible, so let's do it.


git-svn-id: svn://svn.tartarus.org/sgt/putty@10210 cda61777-01e9-0310-a592-d414129be87e
Fix another crash at KEXINIT time, ahem.

This is the same code I previously fixed for failing to check NULL
pointers coming back from ssh_pkt_getstring if the server's KEXINIT
ended early, leading to an embarrassing segfault in place of a fatal
error message. But I've now also had it pointed out to me that the
fatal error message passes the string as %s, which is inappropriate
because (being read straight out of the middle of an SSH packet) it
isn't necessarily zero-terminated!

This is still just an embarrassing segfault in place of a fatal error
message, and not exploitable as far as I can see, because the string
is passed to a dupprintf, which will either read off the end of
allocated address space and segfault non-exploitably, or else it will
find a NUL after all and carefully allocate enough space to format an
error message containing all of the previous junk. But still, how
embarrassing to have messed up the same code _twice_.


git-svn-id: svn://svn.tartarus.org/sgt/putty@10211 cda61777-01e9-0310-a592-d414129be87e
Check for SURROGATE defines individually.

In mingw32 cross environment on CentOS 6.4 IS_HIGH_SURROGATE is
defined, but not the START and END macros.
Add .gitignore
Add defines and enums for GSS key exchange.
Add support for GSS verify MIC.

For both UNIX and Windows.
Based on Matt Loar's code from https://github.com/mloar/putty
Add ssh_kexes for GSS key exchange.

For both UNIX and Windows.
Based on Matt Loar's code from https://github.com/mloar/putty
Move gsslib to global Ssh struct.

Prepare for GSS key exchange.
Add null host key implementation (RFC 4462, section 5).

When using GSS key exchange the server need not have an RSA or DSS
host key to authenticate itself.
Move gss_srv_name to global Ssh struct.

Prepare for GSS key exchange.
Init gsslibs before key exchange.

Also add can_gssapi to global Ssh struct, and rename locals in
do_ssh2_authconn() to *_gssapi_mic.

Prepare for GSS key exchange.
Break out ssh2_get_nbits().

Prepare for GSS key exchange.
Do GSS import_name before key exchange.

Prepare for GSS key exchange.
Make authentication gss_ctx global.

Prepare for GSS key exchange.
Add support for GSS-API key exchange.

Includes support for "null" host key algorithm and gssapi-keyex
authentication.

Based on Matt Loar's code from https://github.com/mloar/putty
Use 64-bit MIT Kerberos DLL on 64-bit builds.
Add 64-bit manifest, and use for 64-bit builds.
Make compilation work on MinGW64 < 2.0.2.

MinGW64 defines the PROPERTYKEY since at least version 1.0, but didn't
define PROPERTYKEY_DEFINED until version 2.0.2.
Allow 3:rd party builds to be properly versioned.
Add README.md with info specific to the GSS-API keyex version.