Create nonrecursive function for simple_cycles

Copied simple_cycles to recursive_simple_cycles and added a new
simple_cycles that is the same algorithm but not recursive.  Two
changes in the API for simple_cycle are that
1) it now returns a generator instead of returning a list.
2) Cycles no longer repeat the first node as the last.  The last
node in the list is assumed to connect to the first node on the list.

Tests added to compare output of simple_cycles and recursive_simple_cycles

Thanks to erikasantos and friedsoap for instigating this and suggesting
helpful changes (which I incorporated).  This addresses #874 #888 #889