Return demo frame instance from `demo_main`.

When a demo is run from within an existing event loop, the demo doesn't block and the demo frame must be saved to prevent garbage collection. Return the demo frame from `demo_main` so that it can be saved.