V4 debugging: fix step-over and step-out.

- step-out: only stop if we’re leaving the context for the function we
  previously stopped at, so intermediate calls between the current
  position and the end do not stop the engine
- step-over: set breakpoints on all lines in current function and
  continue to run. When hitting a breakpoint, see if we are in the same
  context, because recursive calls might happen. Breakpoints on all
  lines are needed, because the (pure) next line might be jumped over
  (like when doing step-over a single-line then clause, where the next
  line might be in the else clause).

Change-Id: Idf35dc740ca64fae5079162162906490a96af2a7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>