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"]`.
Merge pull request #16168 from greysteil/stash-path-info

Stash original path in `ShowExceptions` middleware