monkeypatch inspect.findsource in a context manager

rather than all the time, so it doesn't affect use outside IPython
get rid of redundant context manager
Merge pull request #5712 from minrk/inspect.getsource-context

monkeypatch inspect.findsource in a context manager