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.
Add shortcut for connectfour result checking.
Merge branch 'master' of https://github.com/chirs/arena
various tiny fixes:
Merge remote-tracking branch 'upstream/master'
Modified the tests, not done
Started working toward fixing the multiple move issue of the checkers gameplay
Conflict resolution
Merge remote-tracking branch 'upstream/master' into checkers_gameplay
Changed the dumb checkers player not depend on the gameplay directory
Merge remote-tracking branch 'upstream/master' into checkers_gameplay
Update README.md
Add game_id, move_id methods to Match; change winner argument in build_state to result.
Add a few checkers test cases.
Add history back in to build_state so test will work. import hashlib before using it.
Merge remote-tracking branch 'upstream/master' into checkers_gameplay
Finished dumb checkers player not depending on gameplay. Changed color from red and blue to red and white
Added sketch of protocol in README
Added sketch of protocol in README