Version 0.5.2

Fixed the CardSet class to use dynamic casts to determine the type of
the Card pointers passed to it. This eliminated the need for the
insertion mode to be visible to CardSet, thus improving data cohesion.