ValueBot now avoids giving hints misconstruable as warnings.

Sometimes Alice wants to give a helpful hint to Bob; for
example, if he has three 2s that are all playable right now.
But if Bob has no currently known-playable cards, and one
of those 2s is in Bob's "oldest non-valuable card" slot,
then Bob will misconstrue Alice's hint as a warning not to
discard that 2.

The fix is to get Alice not to give hints that could be
misconstrued in that way, and simultaneously to tighten up
the conditions under which Bob will interpret the hint as
a warning. (For example, if there are no 2s in the discard
pile, then Bob knows his 2 can't be valuable; therefore,
Alice must be telling him that it's playable.)

This patch bumps ValueBot's average score from 18.08 to 18.11.
Improve ValueBot's deductive ability.

If Bob gets a hint from Alice that he (correctly) deduces is a
warning not to discard his oldest card (let's say, a 3), and
at the same time Bob notices that every pile is at least up
to the 2, then he can reliably conclude that his valuable 3
must in fact be playable right now! (However, he still can't
reliably conclude anything about the other 3s Alice named;
they might even be worthless at this point.)

This patch bumps ValueBot's average score from 18.11 to 18.20.
Teach ValueBot about "worthless" cards.

A "worthless" card is defined as a card which will end up
being discarded sooner or later. In particular, any duplicate
of a card that has already been played to a pile is definitely
worthless.

For now, ValueBot just marks a card as worthless whenever
its value drops below lowestPlayableValue(), and updates
the worthlessness of cards only when lowestPlayableValue()
increases (i.e., four times per game, max). This could
certainly be improved.

If Bob (the player to Alice's left) has any known-worthless
cards in his hand, then he'll discard them in preference to
unknown cards, and therefore Alice doesn't need to worry
about warning him about his valuable cards just yet.

This patch bumps ValueBot's average score from 18.20 to 18.21:
not a big change, because of how infrequently cards actually
get marked "worthless".
Allow Pile::nextValueIs() to take an arbitrary int.

This allows the useful pattern
    int v = (something valid or else -1);
    if (myPile.nextValueIs(v)) ...

No change in behavior.
Allow ValueBot to give hints relying more on deduction.

Up to this point, ValueBot never gave a "helpful" hint that involved
naming an unplayable card. However, it's pretty common that the hintee
is already aware of the values of some of his cards. For example, if
Alice tells Bob that his oldest card is red, and Bob already knows
that it's a 5, then Bob can deduce for himself whether the red 5 is
playable; Alice doesn't need to avoid giving a clue about red cards
just because the red 5 might not be playable right now.

This patch bumps ValueBot's average score from 18.21 to 18.58,
a boost of more than 0.35 points per game!