ssh: make sure we execute the initial key exchange only once
ssh: make sure we execute the initial key exchange only once

The initial kex is started from both sides simultaneously, and before,
we could consume the the incoming kex request before we consumed from
our internal channel. This would result in initiating a key exchange
just after completing the initial one, which is not only an extra
delay, but also an error when using OpenSSH (OpenSSH does not support
key exchanges during user authentication).

Change-Id: Ia7e0748ea2bca80ae97d187bcf2931ab6422276b
Reviewed-on: https://go-review.googlesource.com/35851
Run-TryBot: Han-Wen Nienhuys <3269a793d567baa2fa5b041e3e5e0a5039790a2f@google.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Adam Langley <db68fba232b2c49ed3e9d3081df349dde7b61dfd@golang.org>

ScriptRock/crypto,golang/crypto,ScriptRock/crypto,golang/crypto,golang/crypto