More unreachable code - we've already thrown on !defined $pri
Consolidate single-pk checks from relationship inferrence codepaths
Reorder relationship sanity checks, run them only on known loaded classes

This avoids load-order issues in contrived situations where column definitions are
split across class inheritance (which gets rather fun doe to the prorotypical
inheritance of resultsource instances themselves)

While not an immediate problem in code in the wild, the hash randomization in 5.18
now leads to random load order, and as a result more load-order combinations are
tried and can eventually fail. This should reduce these situations to a minimum,
and 79061be1 should keep us appraised of any problems while DBICT:Schema evolves

Ideally the checks will be lifted up to schema-composition time, but we are not
there yet, one yak at a time.
Augment test suite with oddball relationship declarations

Among other things this tests for the issue described/solved in 9e7525a2