Updated .gitignore

Added virtualenv to .gitignore.
Refactored subset generator code
Refactored code for preorder generator
Refactored code for card dealer
Refactored code for swap key-value function
Refactored code for track execution decorator
Refactored code for singleton pattern metaclass