Improve interface to players

Add Viewer.CardsInHand, and ActionResult now says
whether a new card was given
Start of code for TrackingPlayer