Strongly Connected Components only on directed graphs

This modifies strongly_connected_components and its variants to only operate
on directed graphs. This is more consistent with its definition. Also adds
tests to ensure the correct assertions are raised.