Add support for sha256 based hmac and kexgex

This is based on forks by EtiennePerot and ashb who did most of the work. Changing the remaining sha1 references in `transport.py` let's me connect to hardened openssh servers again.