Fix some bugs in SmartBot.

In several places, I'd misused the "playableValue = pile.size()+1" idiom
in a way that mishandled a completed pile. For example, the couldBePlayable()
method indexed off the end of the cantBe_ array, and pleaseObserveColorHint()
constructed a Card with value 6.

Introduce an isWorthless() method to be symmetric with isValuable(), and
rewrite isValuable() in terms of !isWorthless().

These bugfixes improve SmartBot's average score by a little more than 0.01 ppg.
Add SmartBot to the Makefile.
Use the proper rules for the endgame: each player gets one additional turn.

I had resisted implementing this 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.

This boosts all the bots' average scores by up to 1.3 ppg, except for
poor old BlindBot, whose game is always ended via running out of mulligans
rather than running out of cards.