Fix channel open failure for packet size too big and support user-specified max packet + window sizes.

Per section 6.1 of RFC 4253 an SSH implementation MUST support a packet
size of 32768 bytes, however, any size above this is not mandatory.
Currently, the max packet size is 64Kb and can cause a channel open
failure for hosts which only support the required 32Kb packet size.

As a result, we now first open a channel to the host and will reduce the
max packet size to RFC required length if there is a failure. For
performance, once we have tested for this condition a single time, we
will not do so again. If the max packet size has been configured to the
RFC required value (or less) we do not perform this test at all.

Additionally, the user can now manually define the maximum packet and
window size, should they choose to.

Updated version to 2.6.7