better docs
code style, not changing the input arg
better detection of cycle set, by pruning leaf branches.

Since we mostly work graphs that are mostly tree-like, this should reduce the set considerably.
Example for ros-base groovy with artificialy cycle between genmsg and gencpp:

Circular dependency in subset of packages, before:

  actionlib, actionlib_msgs, driver_base, dynamic_reconfigure, gencpp,
  genlisp, genmsg, genpy, geometry_msgs, message_filters, nav_msgs, rosbag,
  roscpp, roscpp_tutorials, rosgraph_msgs, rosnode, rosout, rospy_tutorials,
  rostopic, roswtf, sensor_msgs, std_msgs, std_srvs, stereo_msgs,
  topic_tools, trajectory_msgs, turtlesim, visualization_msgs

After:

Circular dependency in subset of packages:

  gencpp, genmsg
Merge pull request #31 from tkruse/better_cycles

Better cycle detection for topological sort