Remove squares that do not block any moves from magic masks
The old code was removing edge squares from the Magic masks, but that is
only sufficient for sliders. Pieces like Nightriders can already fall off
the board when they are two files / ranks away from the edge. The proper
procedure is to remove the fore-last square of any ride from the mask.
The routine sliding_attack has been adapted to do that, when an additional
argument asks it to do so.
As a result, the attacks table for Nightriders can now be much smaller:
it shrinks from more than 7MB to only 840KB.