Implement understanding on __tracebackhide__...
Implement understanding on __tracebackhide__
__tracebackhide__ is an attribute that when set to a true value mean the
frame need to be skipped/hidden.
Implement this in both ultratb and un ipdb so that by default frames are
hidden, add switches to toggle the behavior.
We reimplement do_up/down but skipping hidden frames when enabled.
This also uses the special value `_ipython_bottom_` to hide all of the
ipython frames.
This also add completion to the debugger