Refactor so that mixin types override the basic
#move function found in the root 'chessman' type. Delete the helper
function #basicMove.
Fix error in the #move implementation for the
'pawn' chessman type: now chessmen at the passant square are deleted
only for en-passant captures. Also base the #move method on that of
the 'chessman' mixin, since the #baseMove has been removed.
Refactor the function #defaults for a cleaner interface.
Refactor so that mixin types override the basic
#getPotentialMoves function found in the 'slider' and 'stepper' mixins.
Delete the helper function #getBasicPotentialMoves.
Remove unnecessary functions;
re-implement a 'context' type, its asserting validator, and specs.
Modify the constant 'no-pawn-promotion'.
Delete the unnecessary constant 'ctx-props';
add the functions #undefined?, #promotion-position?, and
#unset-promotion-position?.
Remove unnecessary functions.
Add specs for the functions
#vow-message-when-set and #vow-promotion-position-when-set.
Add specs for the fn #promotion-position?.
Remove the unnecessary constant 'no-pawn-promotion';
reset the constant 'unset-promotion-pos' to '-'.
Add specs for the function #query-game-service.
Add the function #query-game-service as well as
multiple helper functions.