Initial commit
test file
remove test.py
importing sshKeydist from the launcher
Importing ssh key dialogs from the launcher.
fix import of KeyModel
The wx.STAY_ON_TOP style has been removed from the passphrase
dialog, because it was causing problems when trying to open
the HTML help window from the passphrase dialog's Help button.

This means that the passphrase dialog is no longer guaranteed
to appear on top of the progress dialog, so the progress
dialog is now hidden while the passphrase dialog is being
displayed, which I think is logical - after all how can
there be progress ticking along while a modal dialog is
being displayed?

Another consequence of removing wx.STAY_ON_TOP from the
passphrase dialog could be that we need to get rid of
shell=True from some calls to subprocess.Popen which could
result in DOS windows popping up (possibly in front of
the passphrase dialog).

KeyDist now takes a parentWindow as an argument, e.g.
the launcherMainFrame.

The passphrase dialog's __init__ and onEnter methods check
whether the parent window is a LauncherMainFrame object, and
if so, they temporarily close the progress dialog, while the
passphrase dialog is being displayed and then reopen it
after the passphrase dialog has closed.

This commit involves changes to both the cvl-ssh-utils submodule
and to the cvl-fabric-launcher repository.
Bomb out from addKeyToAgent() if we do not have the private key.
Temporarily use StrictHostKeyChecking=no.
Look for "Identity Added" in addKeyToAgent
Fix for annoying MS-DOS windows popping up on Windows.
Removed blank passphrase option from CreateNewKeyDialog.
Emoticons have been removed from user-visible messages.  How sad :-(
Renamed Reset Passphrase dialog to Reset Key dialog.
Renamed Reset Passphrase dialog to Reset Key dialog.
try/except block for subprocess.STARTF_USESHOWWINDOW code.
Ensuring that blank passphrases are not permitted in
SSH key dialogs.
Changed title of password dialog from "Login Passphrase" to "Login
Password".
Empty passphrases are no longer permitted.

Changed "password" to "passphrase" in a few places, where appropriate.
Refactored logging into its own class. No more global variables for
logging. No need to use logger_debug() (with an underscore) any more -
now we can use logger.debug() (with a dot) instead, which calls the
debug method of our custom Logger class.  The "logger" object used
throughout the Launcher code is now a singleton object of our custom
Logger class, defined within the logger/Logger.py module.  The singleton
logger object can be imported with "from logger.Logger import logger".
This refactoring fixes issue CVLFAB-654 ("logging in LoginTask does not
appear in log").