playing_card: Fix __ne__ implementation.

It was only checking values, not suits.
playing_card: remove __net__().

No idea what this was for.  I suspect a cut-and-paste leftover.
hand, related: draw() -> add().

The name kept confusing me as I programmed; draw feels like it's
how you draw /from/ a hand, not add to it.  add() may be a less
flavorful name but it's also unambiguous.
playing_card: Reorganize and fix comparators.

Rob noticed that there were still some errors here; specifically,
there were two __gt__() implementations and no __ge__().  His pull
request couldn't apply cleanly because I had made some but not all
of the changes locally; nevertheless, this is equivalent to his
work and fixes issue #10 as well.
Various games: Make log_prefix consistent.

They're all foo/bar: now.
hand: New method, reversed().

Returns a reversed-order Hand.  Yes, there is a built-in reversed(),
but it's for iteration, not for actually getting a new hand with the
elements reversed.
chat, player: Turn timestamps on better.

Somehow timestamps on the /login/ screen isn't exactly what I was looking for.
Now we turn it on when you enter chat.
utils: new function, get_plural_str().

Replaces get_point_str() in the Lost Cities implementation, and can be
backported to other games; useful for other things as well (like "card").
Major new feature: Lost Cities.

Without a doubt the most "complex" game implemented so far (yes,
even moreso than Hokm and Whist, only because there are more options
for what you can do per turn).  This is not fully tested, but I have
at least poked at all of the options and played a few full games.
Lost Cities: Don't print scores when resigning.

A resigner forfeits the game no matter the scores, so don't show
them; it's confusing.
Lost Cities: Clear scores after a deal.

This doesn't actually affect anything than if you look at the score
right after a deal but before someone's played a card, and had no
effect on the /real/ scores, but it looked funky.
Lost Cities: ! -> * for indicating the bonus.

It's a little more visually distinctive.
Lost Cities: Catch people doing stupid sizes.

I already caught if you made the hand too big, but I didn't catch
if you made the number of suits/agreements too small for the current
hand size.  Now I do.
game: New utility function, log_pre() (and use).

This joins tell_pre() and bc_pre() in the "does the prefix stuff for
you like you want 98% of the time" bits.  I also converted all of
the log usages in game.py to using it.  So: no functionality change,
but a nice usability boost.
game: Log when players ask for help.

Just as an indicator as to how often people might need help playing.
Hokm: Convert to get_plural_str().

Thinking about implementing 3p Hokm and I remembered this change I
made elsewhere.  Might as well make it here.  No functional change.
4pcgl: Update comment.

Still had 4_player rather than four_player.
New ThreePlayerCardGameLayout class.

No points for guessing why.
Major new feature: 3p Hokm.

This makes the code quite a bit uglier, as 3p Hokm is not partnership,
which changes quite a bit of the internals... but it's actually less
ugly than I was expecting.

3p has been (relatively) tested, and supports both short and long
decks; the default is short, because that's the superior game.  4p
mode still starts, but a full game hasn't been played yet after the
changes.
Hokm: Show scores at the end of a hand.

This necessitated breaking out the generation of the scoring string
from the metadata generating code.  Easy, though, and it works.
Feature requested by Stella, and it's a good idea.