Cleaned up embedded shell and added cleanup method to InteractiveShell....
Cleaned up embedded shell and added cleanup method to InteractiveShell.
* Added explicit code in InteractiveShell to make sure it cleans itself
up. This is now done by the single method .cleanup, that can be called
to have InteractiveShell cleanup. We can't use __del__ because of
the many cycles in our object graph.
* The embedded shell is refactored to no embedding logic is in the base
class. Thus, InteractiveShell no longer takes an ``embedded``
argument. Just use InteractiveShellEmbed.
* Created a super simple top-level :func:`embed` function that creates
an InteractiveShellEmbed and calls it.