Create a SSH key pair when initializing repositories

* Updated SSHKeyManager to allow multiple invocation of SetPrivateKey
* Extract public key from private key when invoked
* Support back compat by extracting public key from private key when
  GetKey is invoked

Fixes #408