Refactor lowestPlayableValue() for efficiency.

ValueBot::lowestPlayableValue() can actually compute its result
straight from the cached card counts (since we mark played cards
with a -1). This means it doesn't have to ask the server for all
the piles. It's not a big win, but it's nice.

No change in behavior.
Make ValueBot less forgetful of playable cards.

Suppose Alice has been told through value hints that she has
a playable 4 in her hand. She observes Bob play an orange 4.
Since she doesn't know her own 4's color, she must forget
that it is playable.

Before this patch, Alice already knew a refinement of this
tactic: if her own 4 was known to be valuable (i.e., unique),
then it couldn't be a duplicate of any card played by Bob.
Therefore Alice didn't need to forget about the playability
of her own valuable cards.

After this patch, Alice also knows the complementary rule:
if Bob's orange 4 was valuable (whether Bob knew it or not!),
then it can't possibly be a duplicate of Alice's 4.

This patch bumps ValueBot's average score from 17.96 to 18.08,
a boost of more than 0.1 points per game!