three types of connected components for digraphs

The `connected-component' and `connected-components' functions now take
a type keyword argument with which they may return one of three types of
connected components.

:STRONG ..... connections only traverse edges along the direction of
              the edge

:WEAK ....... connections may traverse edges in any direction
              regardless of the edge direction

:UNILATERAL . two nodes a and b connected iff a is strongly connected
              to b or b is strongly connected to a