Better file upload error messages

Currently file provisioners will silently fail when there is an error with the remote side. This commit checks the scp error code and will return the error message from the remote. Also, when there is an error returned from the upload it is propagated back to the main loop and may have additional log messages before the actual error is displayed. This now displays a log message close to where the error actually occurred.