revamped getPossibleMoves functions

Needs hasPieceAt() and hasPieceOfOppositeColor() functions from
GameState.