Support matching n cards by refining matching logic in CardMatchingGame and PlayingCard.
Add more documentation/clean up