Added tab completion to in-game chat.

Both player names and chat commands can be completed.
Names of local players and bots are not candidates for completion.
If a completed name is the first word ": " is appended to the end.
The hotkey for toggling team/all chat has been moved to left Alt.
Code cleanup based on code review.

Fixes multiple enumeration of IEnumerable.
Fixes return value of pure method not used.
Converted OnTabKey and OnClick handlers to method groups.
Removed one set of redundant parenthesis.
Replaced explicit type with var.
Added tab completion to lobby chat.

Also fixes accidental reversion of one word logic during cleanup.
Fields that could be readonly are now readonly.
Fixed starport and palace
Update AUTHORS

Added myself as requested by Mailaender.
Replaced ForEach with loop, moved Trim outside.
Replaced GetPlayerNames method with simpler linq.

Bonus feature: it now auto complete bot names as well.
Fixes double auto completion.

Pressing tab twice would auto complete (the same name) twice.
Auto completion is now disabled when last character in sentence is a
space.
Fixes double auto completion in in-game chat.
Changes Weapon.Impact() to use Target (from WPos).
Remove unused method
Ensure that all combatants have a defined WinState at the end of the game
Fix OnObjective(Completed|Failed) not being called for secondary objectives
Make ScriptContext available in Actor- and PlayerProperty classes

Needed to return non-native types to Lua
Add OnCapture, OnAddedToWorld and OnRemovedFromWorld triggers to Lua API

This brings the new Lua API up to feature-parity with the old API in the
trigger department.
Add a number of small helper functions to Lua API
Add reinforcements functions to Lua API
Adjust gdi01 to use new functions
Replace explicit Dispose() calls with using statements in ScriptTrigger.cs
Merge pull request #6284 from obrakmann/gdi01-touchup

More Lua API enhancements