Implement Team Preview and 2v2.

This required an overhaul of the requests system, which was 1v1 only.
The 2v2 support is manual-only: no UI exists to support it as of yet.

Team Preview is a little hacky until smarter clients come along which
can just take a switch in event and fill in information about the
opponent's team.