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