Minor refactors to CheatBot; recognize a new class of worthless cards.

There were a few vestigial organs in CheatBot (for example, the fact
that endgameNoMoreDiscarding was a global variable); these have now been
cleaned up.

maybeDiscardWorthlessCard() and maybeDiscardDuplicateCard() are now
two separate functions, since duplicates are not technically "worthless".

maybeDiscardWorthlessCard() now recognizes that if the red stack is
currently showing "2", and all the red 4s are in the discard pile,
then the red 5 is worthless (as are the red 1s and 2s, for a different
reason; but red 3s are still worth something). This boosts CheatBot's
average insignificantly.

maybeEnablePlay() uses a new heuristic: If the other player already has
a playable card, then we shouldn't bother playing any card that enables
a play by him; he's already taken care of. (There is a corollary: that
if the play he has in mind is the red 2, we shouldn't needlessly play
a red 2 of our own. This corollary is not yet implemented.)
Improve SmartBot's original "smart" feature.

SmartBot is smart because it prefers to play cards that aren't publicly known
to be playable. However, it was just picking the oldest such card in its
hand, rather than picking the lowest such card, in the unlikely case that
its hand contained two different privately-known-playable cards. This is
now fixed, with a couple of TODOs to improve its heuristic in general
(for the more common case that it has two or more playable cards; playing
the lowest one may not always be the best move).

This tweak improves SmartBot's average score by about 0.01 ppg, if that.
Improve SmartBot's sense of when a value hint is a warning.

Before this change, SmartBot would avoid giving its left-hand neighbor a
color hint that included any non-playable cards, unless the non-playable
cards were already publicly known to be worthless or publicly known to
be a specific value. Now SmartBot is allowed to give such hints, if the
non-playable cards can then be deduced not to be playable. For example,
if Bob's third card is "either the green 2 or the red 3", Alice might
safely tell him that it is red, even if the red 3 is not playable, because
she can rely on Bob's deductive reasoning to conclude that of course it's
not playable.
Make SmartBot a little smarter about playing mystery cards.

Avoid playing "mystery" cards that with a little eyesight and deductive
reasoning can easily be proven non-playable.

This change has no significant effect on SmartBot's average score,
and playing mystery cards before the third-to-last turn is still a
bad idea.