Split code in piece.py to simplify it and make it easier to add new variants
Add docstrings
Add more comments
Speed up:
1) By removing setattr in piece.py and adding other_player as a @property (20% less time when running test_variants.py)
2) By changing build_open_positions in board_searcher.py (1% less time when running test_variants.py)