switched to using a TransportConfigCallback rather than changing the global SshSessionFactory singleton

Previously we were setting a private key on a JVM-wide
SshSessionFactory.  The code now uses a TransportConfigCallback so as to
not do this