Gracefully handle failed cleanups

"Graceful" is a bit misleading here, as the best we can do is not ignore
that a problem occurred.

A problem that could occur is that if a file was placed in between `git
reset`ing the tree and applying the stash, the stash would silently fail
to apply.

We need to tell the user that something funky happened. While one
approach would be to "pause" and ask the user what to do, this is
exceptional enough that we're just going to fail loudly and present some
instructions for recovering.

Change-Id: I391574ffba861f94cc46ca74f51f640e5d913a5b
Reviewed-on: http://gerrit.causes.com/41194
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane.dasilva@brigade.com>