Restructured code to ease dependencies and testing

Added card related types and behaviours
Added PlayerTests and CardTests
Improved some function names
Put AutoOpen on module TestSupport