Refactors cards to use instances instead of generic type parameters.

Adds a public static member of each Card class which contians the single instance of that card.
Make all Card constructors private.
Add Cards class which contains a static member for each Card.