[backport] Comply to the debugger interfaces by wrapping JDI runtime exceptions

Several of the debugger interfaces we implement expect a ``DebugException`` to
be thrown when the called method fails to execute. Failure can occur, for
instance, when a debugger session is terminated by the user. Failing to wrap
the JDI runtime exception in a ``DebugException`` can prevent the debugger to
correctly work and the user is sometime forced to restart Eclipse.

``DebugException`` is a platform exception that is specially treated by
Eclipse.

If you wonder why do we have calls to ``safeStackFrameCalls`` in, for instance,
``ScalaStackFrame.getLineNumber``, the answer is: I don't think we need it. However,
since we are in RCs cycle for the 3.0 release, I want to minimize the changes in
this commit to avoid regressions.

Fix #1001531
(cherry picked from commit c5d2ed834502bf1c728f57b5e51779b8d12d4700)