Initial commit of changes required for an ssh feature. This is by no means a complete change.

More error checking, structural work and test cases to follow.

THIS SOFTWARE CONTRIBUTION IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED
- Adding unit tests for ssh feature
- Formatting changes
THIS SOFTWARE CONTRIBUTION IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED
Ssh will return the error code of the last command that was executed. This can mean we can get an error code back even if the ssh was successful.

Removing the stack trace from any error message.

THIS SOFTWARE CONTRIBUTION IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED