Cooperative match and other fixes

Here are a bunch of changes that we sorta discussed. Along with cooperative matches are the ability to have the GUI shut down after it is finished (so a tournament driver script can run through a bunch of matches), some fixes, refactorings... etc.

The debugging visualization stuff will come in a different PR. These changes here are more important IMO.