cast unicode in oinspect.find_file
fix %edit foo for interactively defined variables

Effectively handles cases such as:

    In [1]: def foo(): return 5
    In [2]: %edit foo

Where `%edit foo` effectively turns into `%edit 1` by parsing the `<ipython-input-NN-…>` fake filename.
test %edit magic on interactively defined objects
ensure linen is defined in find_source_lines
cleanup warning/error messages when nothing is found to %edit
Merge pull request #2476 from minrk/editmagic

allow %edit <variable> to work for some interactively defined objects

interactively defined classes still don't work