change prompt_numper type

prompt number type was number or string ('*', '&nbsp')
require it to be either number, or null
prompt_number : number -> integer
number -> integer
limit cell_level and nbformat(minor) values
require prompt number for code cell
import jsonpointer and schema from external
Add jsonschema liscence in external
Locate URLs in text output and convert them to hyperlinks.
Better handling of `__file__` when running scripts.

* Set `__file__` when running `ipython filename.ipy`
* Avoid leaking `__file__` back into the main namespace when using `%run`.
Add test for `__file__` behavior in `%run`.
Add test for `__file__` behavior in `ipython <file>`
Allow the user to interact with link anchors in the qtconsole

Since the qtconsole can display hyperlinks, it would be useful
to allow interacting with them.

This adds showing a tooltip when the mouse is over a link.
The tooltip code stores the anchor in ConsoleWidget._anchor,
so when the user right-clicks to select the context menu for
"Open Link" or "Copy Link Address", it uses the text that was
displayed and not whats under the current context menu pointer
location.

Also storing the anchor allows me to check to see if we've
already displayed that anchor on a new mouseMoveEvent so the
tooltip doesn't keep getting redrawn.
Test _anchor tracking in response to mouseMoveEvent Messages

Test the _anchor updating for implementing qtconsole clickable links.
Move mouse move handling to ConsoleWidget.eventFilter

Bradly Froehle pointed out my original implementation broke selecting
text and suggested moving the link tooltip handling to eventFilter.

The current version doesn't report that it handled the mouse move
message, I think this may be better as in addition to showing
the tool tip you can still select text inside the linkable object.

(Its always been a problem to select some chunk of link text in
gnome-terminal as their link handling overrides the other mouse
selecting functionality)
Merge remote-tracking branch 'upstream/master' into clickable-links
Use an unique object instead of specified flag
Update ConsoleWidget anchor handling test code.

The test code wasn't updated to test the eventFilter based implementation.
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.
Fix doctest_run_option_parser for Windows

It should fix (part of) #2477.