The tight-to-loose blocking cascade used by np_cascade(). Each pass is a
list with a name, a human-readable desc (the decision criterion, shown in
the stage report), and args passed to np_block(). Earlier passes are cheap
and high-precision; later passes are looser and only run on the residual
(queries not yet auto-accepted).