Context
Given forward and reverse links does create loops we are dealing with a graph, not a tree. But Cross-Tracker table rendering is a tree view so we should handle gracefully the most obvious loops to avoid confusions and miss usage.
This means filtering out results.
Filter reverse links
Given the following hierarchy of artifacts
A
`--> (child) B
`-- (child) C
When B is expanded, it should not display A as reverse link.
If B has no forward links and the only reverse link is A, then no caret is displayed.

Filter forward links
Given the following artifacts
Sprint 32
|--> US B
`--> US A
When looking for user stories, the result is:
> US B
> US A
When B is expanded:
▼ US B
`<-- Sprint 32 (reverse link)
> US A
However when Sprint 32 is expanded, US B is not displayed:
▼ US B
`<-- ▼ Sprint 32 (reverse link)
`-- US A
> US A