The purpose of this diff is to
(1) move from procedural to object oriented code for the AIconfig page (#5387)
(2) update the AIconfig page without closing it and reopening it on the same frame
(3) run it in the same page context as the GameSetup page in order to
(3A) reuse the Gamesetup controller classes instead of reimplementing them, and
(3A) provide an example for future gamesetup subpages that will more clearly benefit from running in the same context.
(4) Change AIConfig page to have changes take effect immediately after changing the dropdowns.
This is necessary for the user choice to not be lost in case there are multiple gamesetup controllers (i.e. preparation for #3806).
(5) Hide AIDifficulty, AIBehavior if no AI is assigned and hide AIBehavior for Sandbox AI.