Rework Edge handling
### Problem Currently, edges are mainly configured by EdgeType and AnchorType. Edge type allows ONE2ONE, ONE2MANY, MANY2ONE, and MANY2MANY. AnchorType options are BOTH, TARGET, and SOURCE. This works perfect for Edges that have a clear direction, e.g. from startingPoints to endPoints, which are then set as SOURCE and TARGET. Edge.js queries the anchors and connects according to the EdgeType. Sometimes, we need AnchorType BOTH. This is typically the case if we don't have a connection or it does not matter. E.g. Allocations Vertex Assigned Signals. There we want to draw an Edge between two endPoints. BOTH makes both SOURCE and TARGET. So it gives us 4 combinations: 2 self-references and 2 duplicate Edge between the ports. Edge type allows us to filter. The only Edge type that tries to avoid self-references is ONE2ONE. If we now have a situation, where Signal or Connection have 1:n mapping, we cannot use ONE2ONE, so we cannot fully visualize. Either some Edge spans are missing or we have self-references. ### Solution a feature like "allowSelfReference" to model if we want self-references or not. And actually "allowDuplicateEdgeSpans". This might break backwards compatiblity or be quite complex for compatibility. So best at next breaking version jump.
issue