Make deferral default in Shogi promotions
Because '+' is intercepted by the parser as check indicator, Shogi moves
are pre-processed to change a trailing '+' into an internally used
alternative '^'. The testing if a promotion character is OK is now done
in LegalityTest() and Disambiguate(), which return ImpossibleMove when
the character does not correspond to any piece, and IllegalMove when in
Shogi anything other than '^' or '=' is used. (Except for the ICS
notations.) On output, in CoordsToComputerAlgebraic() and
CoordsToAlgebraic(), the '^' is translated back to '+'.