Topological (dependency) sorting and cycle-finding functions.
The topsort function is based on code posted on Usenet by Tim Peters.
* added doctests
* changed some parts to use current Python idioms
* added a topsort_levels version that ports items in each dependency level
into a sub-list
* added find_cycles to aid in cycle debugging