Allow filename with extension in find_cmd in Windows.

closes gh-3316 (hopefully)
Add a mode to exec code in %debug magic
Document the new usage of %debug
Drop patch for compatibility with pyreadline 1.5

Closes gh-1307
Set calling program to the empty string, when argv not in sys

It might happen, then the sys module has no argv, when embeding IPython
into other programs with IPython.embed(). In that case, just set the
calling program to "" or other logic in IPython will crash - for
instance when checking for command line arguments.
add Application.launch_new_instance classmethod

allows uniformity when making changes.

The change here that prompted it is passing arguments to the instance constructor and initialize.
use launch_new_instance classmethod to launch apps
add IPython.start_ipython

A public API for starting a real (non-embedded) IPython instance.

should avoid API breakage in the future due to simple module renames

as has just happened with the removal of frontend
expand start_ipython / embed docstrings

clarify the difference between them.
add IPython.start_kernel

for symmetry
Application.launch_instance

removes `new` from method name, since it isn't accurate.
use start_ipython in entry points

increases visibility of the public API to snoopers.
remove extra empty lines
Add failing test for gh-3547
Simplify caching of modules from %run-ing scripts.

Previously, we cleared and re-used a single FakeModule instance in which to
run cells, and cached copies of the modules' namespaces to prevent them from
being cleared. Now, we cache one FakeModule instance per script file, clearing
it and re-using it if the same script is re-run. This seems more robust.

Closes gh-3547
Another passing test :-)
Minor tweak to test for Python 3
add create.Cell and delete.Cell js events

The events fire after the cell has been created or deleted.

closes #3154
Added shorcuts to split cell, merge cell above and merge cell below.
Mention API changes in whatsnew doc