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.
Creating the first Runtime object in Application::Launch(), the OnRuntimeAdded() will be invoked, and the runtimes_ is empty.