Improve temporary deployment to report error

The main issue addressed by this PR is improving Temp Deployment.   In the past, we always delete the Temp Deployment at the end of the deployment process hoping that the actual one have taken place.   This assumption may be wrong as the failure may occur before the actual deployment step (see issue #326, #327).  

The fix is to keep the Temp Deployment around in case of error (exception).  Also improving in how we capture error (innerLogger).  There may be a time where there are multiple concurrent pending deployments.   This is OK as only latest one is considered by Portal.