(#8422) Catch errors executing installer scripts
(#8422) Catch errors executing installer scripts

This change uses Net::SSH to execute the remote installation script in a
more controlled manner.  Previously, the use of tee was causing the
remote command to always exit with a 0 status.  If the script actually
failed, this 0 status would mask the failure and not present feedback to
the end user.

With this change, the tee command is removed.  The end user no longer
gets an log of standard output stored on the remote system.

In addition, Net::SSH channel sessions are being used to setup call
backs to stream the standard output of the installation script and
receive the exit code in a clear manner.

There are two changes here.  One to execute the date command to ensure
SSH is available.  This command is executed in a retry loop.

After the date command, the actual installation script is uploaded and
executed.

puppetlabs/puppetlabs-cloud_provisioner,puppetlabs/puppetlabs-cloud_provisioner,16nsk/puppetlabs-cloud_provisioner,amos6224/puppetlabs-cloud-provisioner