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.

For implementation purposes, I have added `launch_new_instance` as a classmethod on Application.  I did this, because I wanted to add the ability to pass arguments to the instance, and didn't want to manually update every duplicate `launch_new_instance`.

closes #1537