Originally I wanted to only create new exceptions. Modifying exceptions in-place bothers me.

But I found that the no-modify policy didn't work for the RSpec integration. RSpec doesn't let before/after/around handlers rescue exceptions; it handles that itself and then exposes any raised exception as `example.exception`. There is no corresponding `example.exception=(new_exception)`. So I switched to modifying the exception message in place. It's a bit of a kludge, but I still prefer to see the message about kept files in the list of test failures, rather than cluttering the output during the test run.