Add SSH Private Key decoding

These patches add support for Private key decoding with passphrase support stubbed (we don't have DES handy in Haskell it seems) and encoding stubbed (passphrases and our types are actually quite bad, we are tossing info we should be keeping).