Fix minimax algorithm

Remove current_player, pass around player values in minimax instead
Write specs to ensure game never breaks in the same way again
Force first turns differently if depending on if board has middle cell