Implement canonizeRanks and card set creation utilities.

The canonizeRanks function creates a CardSet which is meant to represent a
set of ranks independent of suits.  The suits are assigned to each rank in
standard bridge suit order: c,d,h,s.  Three generators which create all the
CardSet representations implemented.  The sets are:

1. all sets of playing cards of size N
2. all sets independent of suit isomorphisms
3. all sets independent of suits

Unit tests added for new functionality.
Add canonizeRanks implementation and tests.