Replace launch() with switch_to_frame() in select()

`Base.select()` may be called not from the initial app screen but from a
sub-screen of the app. When `Base.launch()` is called from within select
it causes the application's `launch()` method to be called.

Really, we aren't wanting a launch here at all, we are just switching
back to a frame. While `Base.launch()` is a convenient way of doing
that, it causes problems when the screen you are returning to isn't the
expected home page of the app.

This should resolve issue #1346.