Split keyboard and mouse focus.

Fixes #3304.
Fixes #2075.
Fixes C&C chat focus bug.
Spaces -> Tabs in ViewportScrollControllerWidget.
Clean up ViewportScrollControllerWidget.
Rename ViewportScrollController -> ViewportController.
Move C&C world tooltip code into ViewportControllerWidget.
Use C&C world tooltips in RA and D2K. Fixes #2382.
Eat mouse-up events in RA production palette. Fixes #2192.
Merge pull request #3607 from pchote/widget-focus

Split keyboard/mouse focus and use C&C world tooltips in RA/D2K.
Put audio related problems into sound.log
Add WAngle.ArcTan().
Add probabilistic sampling functions to WRange, WVec.
Convert ProjectileArgs to world coords.
Split TeslaRenderable out from TeslaZap.
Rewrite GravityBomb with world coords and gravity.
Rewrite bullets using world coords and improved trails.
Convert Missile to world coordinates. Fixes #3347. Closes #3434.
Remove obsolete Gauss1D/Gauss2D functions.
Add WVec.ToCVec() extension method.
Remove PSubVec from AttackWander.
Remove obsolete PSubPos and PSubVec.