Make sure that any puppet apply failure is always detected

It seems like puppet apply does not always result in a return code !=0 if it fails to apply some of the requested changes. We should make sure that the PuppetActivity is retried until all the requested changes are applied successfully.