Merge refactorings from qinsoon:
- JUnit tests no longer generate files in arbitrary places, it always generates files in test_gen.
- We can generate Card object without having a deck, will reuse it else where. Cards use a global ID as suffix.