Genex: Diagnose cyclic link information

A generator expression such as `$<TARGET_RUNTIME_DLLS:tgt>` reachable
from the link closure of `tgt` causes a nested re-entry into
`GetLinkInformation`. This computation runs over a partially computed
link implementation and leads to bogus generation errors or a crash.

Reserve the cache entry before computing, and error out when the
computation is re-entered.
6 files changed