Don't discard exception instance data in debug mode

If the debugger's monkey-patched raise was passed an instantiated
exception, the #exception method was called with a potentially nil
argument, causing its instance data to be thrown away. This hides
potentially useful information from the user.

Fix it by allowing instantiated exceptions to be reraised unharmed.

Fixes #17622.