SpockAI

This is a messy, just-in-time submission of the AI I had been hoping to
submit since the first day of the contest.  I call it "SpockAI" since I
tried to make it as rational as possible.  I have not read the code of
the other submissions, so I do not know how its reasoning compares with
the other entries.  However, it is able to deduce at least as much
information as the other entries, and it tends to win at least as many
games as Ray's 01.

SpockAI revolves around the Knowledge class, which uses iterative
deduction to remove impossible solutions and player hands to refine the
game knowledge as far as possible.  When it makes Suggestions, it tries
every legal Suggestion and selects the one that has the best worst-case
improvement on its current information.  It determines this using a
heuristic of lowest possible solutions using the players' possible hand
counts as tie-breakers.

The code is a mess, and there are things I would like to improve if I
have time.  I probably don't  ~_~