Re-factor the runtime class.

Add RuntimeUIStrategy for creating and showing the runtime window by provided params. This will separate the UI related implementations into the new strategy object.
maybe it's worth adding Runtime::Observer::OnRuntimeReadyToShow(Runtime*), further 
void Application::OnRuntimeReadyToShow(Runtime* runtime) {
ui_strategy_->Show(runtime, window_create_params_used_);
}