fix(level-blocks): validate collector refs off the compiled spec; exhaustive dispatch
Extract collector scorer refs from the compiled Collector spec (via the
block's pure apply()) instead of duck-typing parsed params as {by, over}:
a custom collector naming its refs under a different param no longer
skips layer-1 validation, and a non-array by/over can't surface as a raw
TypeError. Distinguish a missing scorer from a disabled one in the
layer-2 runFromConfig check. Convert both collector dispatch ternaries to
exhaustive switches ending in assertNeverCollector so a future variant is
a compile error. Fix stale docs (collectors labeled by, not keyed by;
single-scorer Pareto keeps all co-best; ES2019 sort stability).