Use (almost) proper rules for the endgame and for hint stones.

I had resisted implementing the "one final turn" rule because it causes
some invariants to vary: namely, bots can no longer rely on seeing exactly
4 cards in their partners' hands. Instead they see either 3 or 4 cards,
depending on the progress of the game.

Bots may still legally assume that their *own* hand contains 4 cards
during their turn, which explains the "4"s left in the code.

Also, the official Hanabi rules state that there are 8 hint stones,
not 7 as I'd originally coded; and that you get a hint stone back (if possible)
whenever you play a 5.

The official rules ALSO state that you shouldn't be able to discard anything
if you're already at maximum hint-stone capacity. Several of the bots' strategies
depend on never giving "misleading" hints, so they'll have to be reworked to
deal with this rule. I've left it disabled for now.

This boosts all the bots' average scores by a ridiculous amount, except for
poor old BlindBot, whose game is always ended via running out of mulligans
rather than running out of cards, and CheatBot, who still can't win 100%
of the time.
Implement the one remaining rule of real Hanabi!

Said rule being: "If no hint stones have been used, discarding
is not permitted; discarding is permitted only if it is possible
to regain a hint stone."

Getting around this rule turns out to be pretty simple; each bot
uses the same new tactic, which is to give a "dummy" hint to the
player on its right when necessary.