Logic now checks if players can move at all, calls game over if not

added subclass of DefaultEdge (from jgrapht) to expose vertices
Board:
    - added method hasUnoccupiedNeighbour() as part of motility check
Logic:
    - fixed logical error in advancePhase()
    - reorganized advancePhase()
    - added method movingStillPossible() as part of motility check
    - changed return type of removeStone() to int
Stone:
    - added method canMove() as part of motility check

test/FullGame: fixed tests to correspond to change in method return types