Refactored the Core Component to better use the Command Design pattern.

*Added BoardObserver
*Added GameAction
*Refactored MoveAction to extend GameAction
*Added ChangeStateAction
*Refactored GameStateListener to GameObserver.
*Marker refactored to MarkerImage for better readability
*Removed MarkerImage's dependency on a Player.
*Players now interact directly with the Board by playing GameActions
*GameplayView refactored to reflect previous changes