Possibly fix white cards that can't be played

If the player playes a card that doesn't appear to exist in their hand,
bail out and resync their hand to the server. This might help with #40.

This also replaces find() and [x for x in y if z][0] idiom with
appropriate lazy iterators.
Replace accessor method with property reference

Not performance critical, but still faster (object dict lookup beats
method call) and less boilerplate code.
Cleanup czar selection

This has just been bothering me.

However, #40 still isn't fixed at this point.
Turn card IDs into integers server side. Fixes #40

I'm going to blame JavaScript for this one. Not entirely sure what's going
on here, but this does fix it.
Merge pull request #43 from pao/topic/issue/40

Cleanup and fix a bunch of stuff