Undo the changes to end the sessions on event loop exit.

Use `Application.destroy` instead.
Add support for adding windows to a running session.

This commit also adds support for creating top-level windows which are
children of another widget. It also adds a more formal api for batching
actions on a session.
Prevent toplevel wx windows from being destroyed on close.

Update the Window class to toggle visibility to False when closed.