TextWindow.cs: fix scrollbar did not maintain its position relative to current text when old text is being cleared away from the chat window
(usually it moved down when old text is being cleared)
ToolTabs.cs: fix issue #84 , middle-mouse button on channel tab close that tab but do not leave channel.
ChatControl.cs: ops, fix typo in "ADDUSER missing" safety check (<= instead of correct < for iterating array) & use List instead of primitive array (tiny cleanup)
fix issue #84 (tooltab now use different name for PM than for Channel. Internal changes only, no visible change in UI). Also, use threading to save/retrieve chat history (this is related to issue #84 too, but have added benefit of reduced chat tab's initialization time!)
Undo https://github.com/xponen/Zero-K-Infrastructure/commit/7b32e680d8f1a4b976d0a15905da4f929bcae392 because threading sound a bit dangerous (I'm just a newbie at this :( , can't really profile memory/CPU usage properly) & found timing issues: history text shown AFTER subscribed message is shown.
finally fixed issue #85 without using threading (turn out that simply delaying file write is sufficient).

Now HistoryManager.cs stores chat lines in buffer before writing them (all at once) to a file.
AdvertiserTab, DownloaderTab: "lazy UI initialization" (do not initialize their UI until Tab is open. Aiming for a bit increase in efficiency.)

ChatTab.cs: remove empty Load event.
BattleListTab (Multiplayer tab): UI also do "lazy initialization" with aim of efficiency (possibly reduce startup time a bit too).
ToolTabs.cs: non-pm tab get "_chan" (in internal name) just like pm tab get "_pm" to avoid channel with "_pm" as name.
Fix "lazy UI initialization" was too lazy in Linux (do not start until clicked). Changed "Enter" event to "Paint" event. (They are unsubscribed after first time use)
Merge pull request #143 from xponen/some_zkl_tweak

ZKL: fix for issue #84 and 2 other