add basic interactive player

Add a basic interactive player that displays the remaining cards (a
list of coordinates) and asks for two coordinates.

Factor common behaviour into a ``Player`` base class; the base class
calls ``notify_match`` and ``notify_nonmatch`` (defined by
subclasses) when cards are revealed.  Raise an exception when the
an endgame condition is encountered (in the case of the interactive
player: user types "end" and enters endgame cards).

This change appears to have bugs, the most glaring of which is that
all the old cards appear in terminal scroll-back.  An ncurses
implementation will follow.
make Player and abstract base class

Use the abc.ABCMeta metaclass and @abc.abstractmethod to make Player
an abstract base class and ensure that concrete subclasses implement
the required methods.