Encode board steps in an unambiguous way
The steps/slider/hopper arrays that pass the leaps a piece can make from
the betza parser to the routines in bitboard.cpp that generate attack
sets from those are now encoded as if they are for a board of 32 files,
in a new integer type DirectionCode. Routines to convert this from and
to Direction are provided. This allows unambiguous encoding of moves by
the board step for boards of up to 16 files, while using the board step
itself already became ambiguous with leaps that moved 4 files.