Benchmarker/MainForm.cs: fix Benchmarker cause a crash if its open & closed, then joined a game & download something (mod/game)
(Timer keep running in background even if Benchmarker was closed. Needed Dispose())
BattleBar.cs: found 1 timer that could be safely disposed off
Utils.cs: fix ZKL shortcut in Linux for first-time user
(Windows' URL shortcut don't work in Linux. Also, a todo, add Icon!)

Program.cs: skip changing Window registry in Linux
(Linux don't have registry, only random local config files)
SettingsTab.cs: fix "Open Game Data Folder" and "Game Diagnostic Log" not working in Linux
(the "file://" protocol need to be opened with "OpenUrl()" in Linux if I'm not mistaken. Can skip it by calling the folder directly)
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
SkirmishControlTool.cs: implement code readability improvement for sorting function as suggested by Licho
SkirmishControlTool.cs: ops , forgot to remove debug echo.
ExtrasTab/ExtrasToolTabs.cs: some typo. (did not cause anything yet at moment because Extra tab only have Skirmisher control)
SkirmishControl.cs: reduce delay for ComboBox to refresh list after ResourceAdded() event to 3 second from 15 second, and simplify logic a bit.
ZeroKLobby.csproj: OPS!forgot to commit this file!
Other changes: ProjectTypeGuids = WPF;C#
into: ProjectTypeGuids = C#
This make it open-able in Mono-Develop
Reference: http://stackoverflow.com/questions/2911565/what-is-the-significance-of-projecttypeguids-tag-in-the-visual-studio-project-fi/19111363#19111363
SkirmishControlTool.cs : SortListByVersionName(): moved some stuff out of sorting's "lambda" function for better efficiency & less code line.
ZeroKLobby.csproj: undo set ProjectTypeGuid due to
fears mentioned here http://stackoverflow.com/questions/8727974/removing-project-type-guid-projecttypeguid
SkirmishControl.cs: remove tooltip from map, add map tooltip to map_comboBox
(this give better info when scrolling thru map list using mousewheel shortcut & make map picture appearance less encumbered by numbers and text)

Config.cs & SkirmishControl.cs: will automatically load previous engine/map/mod selection at start up