* Makes players more abstract from the game, also more extendible so anything implementing this can create and pass their own player objects
* Boardmove now calls super().__init__() opening opportunities to save more information about the board in these objects. This prevents the need for a lot of passing objects and executing functions unnecessarily
* Updated docs