docs: Add in helpful docstrings for commands that were missing help.

Change-Id: I851befabbd5dc7c643e7144aa819d1e9440a558d
diff --git a/mdt/config.py b/mdt/config.py
index 8370332..1f1985e 100644
--- a/mdt/config.py
+++ b/mdt/config.py
@@ -85,6 +85,8 @@
 
     preferred-device    - set this to your preferred device name to default
                           most commands to manipulating this specific device.
+                          This can be set to an IPv4 address to bypass the mDNS
+                          lookup.
     username            - set this to the username that should be used to
                           connect to a device with. Defaults to 'mendel'.
     password            - set this to the password to use to login to a new
@@ -118,6 +120,8 @@
 
     preferred-device    - set this to your preferred device name to default
                           most commands to manipulating this specific device.
+                          This can be set to an IPv4 address to bypass the mDNS
+                          lookup.
     username            - set this to the username that should be used to
                           connect to a device with. Defaults to 'mendel'.
     password            - set this to the password to use to login to a new
diff --git a/mdt/devices.py b/mdt/devices.py
index 51fad2e..2fd7b86 100644
--- a/mdt/devices.py
+++ b/mdt/devices.py
@@ -28,7 +28,8 @@
 segment. Also indicates if a given device is marked as your default.
 
 Variables used:
-   preferred-device: contains the device name you want as your default
+   preferred-device: contains the device name you want as your default.
+                     Can be set to an IPv4 address to bypass the mDNS lookup.
 
 Note: MDT uses a python implementation of mDNS ZeroConf for discovery, so
 it does not require a running Avahi daemon.
@@ -56,6 +57,7 @@
 
 Variables used:
    preferred-device: contains the device name you want as your default
+                     Can be set to an IPv4 address to bypass the mDNS lookup.
 
 Note: if preferred-device is cleared, then this will return on the first
 available device found. Also, MDT uses a python implementation of mDNS
diff --git a/mdt/files.py b/mdt/files.py
index 67afcfd..d9803e2 100644
--- a/mdt/files.py
+++ b/mdt/files.py
@@ -48,6 +48,28 @@
 
 
 class InstallCommand(command.NetworkCommand):
+    '''Usage: mdt install <deb-package>
+
+Installs a given Debian package file to the connected device via
+mdt-install-package.
+
+Variables used:
+    preferred-device    - set this to your preferred device name to connect
+                          to by default if no <devicename> is provided on the
+                          command line. Can be set to an IPv4 address to bypass
+                          the mDNS lookup.
+    username            - set this to the username that should be used to
+                          connect to a device with. Defaults to 'mendel'.
+    password            - set this to the password to use to login to a new
+                          device with. Defaults to 'mendel'. Only used
+                          during the initial setup phase of pushing an SSH
+                          key to the board.
+
+Note: if the package provided has dependencies that are not already installed on
+the device, this will require internet connectivity to fetch and install those
+dependencies.
+'''
+
     def preConnectRun(self, args):
         if len(args) < 2:
             print("Usage: mdt install [<package-filename...>]")
@@ -75,9 +97,26 @@
 
 
 class PushCommand(command.NetworkCommand):
+    '''Usage: mdt push <filename...> <remote-path>
+
+Variables used:
+    preferred-device    - set this to your preferred device name to connect
+                          to by default if no <devicename> is provided on the
+                          command line. Can be set to an IPv4 address to bypass
+                          the mDNS lookup.
+    username            - set this to the username that should be used to
+                          connect to a device with. Defaults to 'mendel'.
+    password            - set this to the password to use to login to a new
+                          device with. Defaults to 'mendel'. Only used
+                          during the initial setup phase of pushing an SSH
+                          key to the board.
+
+Pushes (copies) a local file or set of files to the remote device.
+'''
+
     def preConnectRun(self, args):
         if len(args) < 3:
-            print("Usage: mdt push <filename...> <destination-directory>")
+            print("Usage: mdt push <filename...> <remote-path>")
             return False
 
         for file in args[1:-1]:
@@ -110,6 +149,23 @@
 
 
 class PullCommand(command.NetworkCommand):
+    '''Usage: mdt pull [<filename...>]
+
+Variables used:
+    preferred-device    - set this to your preferred device name to connect
+                          to by default if no <devicename> is provided on the
+                          command line. Can be set to an IPv4 address to bypass
+                          the mDNS lookup.
+    username            - set this to the username that should be used to
+                          connect to a device with. Defaults to 'mendel'.
+    password            - set this to the password to use to login to a new
+                          device with. Defaults to 'mendel'. Only used
+                          during the initial setup phase of pushing an SSH
+                          key to the board.
+
+Pulls (copies) a set of files from the remote device to a local path.
+'''
+
     def preConnectRun(self, args):
         if len(args) < 3:
             print("Usage: mdt pull [<filename...>]")
diff --git a/mdt/keys.py b/mdt/keys.py
index e3fdd19..4214130 100644
--- a/mdt/keys.py
+++ b/mdt/keys.py
@@ -75,7 +75,10 @@
 Generates an SSH key and stores it to disk.
 
 Note that this does not prompt if you want to replace an already existing
-key and will happily overwrite without telling you!
+key and will happily overwrite without telling you! Also note, you should remove
+the keys previously stored on the device in $HOME/.ssh/authorized_keys and
+restart the mdt-keymaster service on the device to re-push any newly generated
+keys.
 '''
 
     def run(self, args):
diff --git a/mdt/shell.py b/mdt/shell.py
index dd0cc54..df4061a 100644
--- a/mdt/shell.py
+++ b/mdt/shell.py
@@ -30,7 +30,8 @@
 Variables used:
     preferred-device    - set this to your preferred device name to connect
                           to by default if no <devicename> is provided on the
-                          command line.
+                          command line. Can be set to an IPv4 address to bypass
+                          the mDNS lookup.
     username            - set this to the username that should be used to
                           connect to a device with. Defaults to 'mendel'.
     password            - set this to the password to use to login to a new
@@ -65,7 +66,8 @@
 Variables used:
     preferred-device    - set this to your preferred device name to connect
                           to by default if no <devicename> is provided on the
-                          command line.
+                          command line. Can be set to an IPv4 address to bypass
+                          the mDNS lookup.
     username            - set this to the username that should be used to
                           connect to a device with. Defaults to 'mendel'.
     password            - set this to the password to use to login to a new