Stash original path in `ShowExceptions` middleware

`ActionDispatch::ShowExceptions` overwrites `PATH_INFO` with the status code
for the exception defined in `ExceptionWrapper`, so the path the user was
visiting when an exception occurred was not previously available to any custom
exceptions_app.

The original `PATH_INFO` is now stashed in `env["action_dispatch.original_path"]`.

This is an updated PR based on @matthewd's feedback on https://github.com/rails/rails/pull/16165