TextWindow.cs: fix emoji character make ChatTab drawing to malfunction and draw only white in Linux. Convert stringBuilder = new instancing into stringBuilder.Clear() which is more efficient.
(method of fixing emoji problem is to specially treat every character when its integer value is > Int16.MaxValue: first attempt drawing using separate graphic instance and if it show 0 width, then skip drawing it to screen)
SpringsettingForm.cs: set active Spring to default version if none was set yet. This fix SpringsettingForm showed empty window if you had default Spring but not joined any room yet. This issue seem to happen in Linux

(In Windows: SpringScanner or Unitsync probably already set active Spring version (thru springPath) at start)
NavigationControl.cs: allow NavigationControl to pass on "file://" protocol to external browser. This add feature to able use address bar to open local folder or use chat message to point to local folder (all added "wwwRegex" to check for this text in TextWindow.cs, commited in previous 2 commit)

Example use:
write "file:///home/username/.spring/" at address bar will open this folder in linux
clicking "file:///c:/" in ChatTab's chat area might open C: in windows
might be useful for tutoring using chat, but the "wwwRegex" won't parse space in path properly.
BattleBar.Designer.cs: found ISupportInitialize, removed it.
(for record: due to history of crashing ZKL. Also it doesn't do anything, just to help with VS design mode)
SkirmishControl: various improvement on Add Spring AI button
*No longer use UnitSync, instead will check for DataDir directory and current Engine directory. New Spring AI can be put in DataDir/AI/Skirmish and seem to work (at least in Windows. Still depend on Spring to acknowledge that the AI is there)
MinimapFuncBox.cs: Add Spring AI to regular Multiplayer AddAI button.
Note: the AI is indeed unstable. Haven't able to spectate a reliable game.
the Spring AI is not shown in main list, but at bottom of LUAUI AI, in subdirectory( hopefully doesn't look like something default)
SkirmishControl.cs: Skirmisher UI maintain current map/mod selection when combo_boxes is refreshed
SkirmishControlTool.cs: remove 1 unnecessary loop when checking for Spring AI list
MinimapFuncBox & ContextMenus.cs: move duplicate "Add Spring AI" code from MinimapFuncBox to ContextMenus.cs to increase maintenance capability