Use a set instead of a list for membership check

`x in [...]` is a linear operation, while `x in set()` is constant time.
Plumbing no longer knows about the gameplay module

This change makes gameplay extensible without having to change the
source code. Consider the following use-case: I want to add a gameplay
mode to arena, but I've installed arena as a package and don't want to
modify the source.

Before, I'd be out of luck. Match needs to know about every gameplay
mode ahead of time; if I can't edit the source, I can't create my own
gameplay objects.

Now, however, I can simply add my own gameplay class to GAMES, thereby
"teaching" supervise and match about the new gameplay mode.
Conflict resolution
Merge remote-tracking branch 'upstream/master' into checkers_gameplay