dag: Use a hybrid method for branchy line drawing
Go back to Uri's original method for deciding when to
change edge colors. This avoids the triangular-like sections
with the same color.
Use the diagonal {source,dest}.x() check for choosing between
dotted and solid lines to ensure that diagonal lines are always
solid. Diagonal lines will be anti-aliased so this avoids using
dotted lines for them.
Inspired-by: @ugtar in a7e3ff72c2b948d7f936f9e56e52eeac26cdeb34
Signed-off-by: David Aguilar <davvid@gmail.com>