Workaround broken code where a target has itself in its link iface.

There is a test for this since commit 8e756d2b (Tolerate cycles in
shared library link interfaces (#12647), 2012-01-12), so make sure
it continues to pass, even as we require no self-references in new
INTERFACE_ property generator expressions.
Restore fatal error for self-references in genexes.

This reverts most of commit 953def1e (Fix DAG checker finding cycling
dependencies., 2013-02-18). The only remaining change is the logical
change in the DagChecker implementation.
Merge topic 'interface-property-external-read' into next

fcd4ab5 Restore fatal error for self-references in genexes.
a6743c0 Workaround broken code where a target has itself in its link iface.