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
Merge branch 'master' of https://github.com/networkx/networkx

* 'master' of https://github.com/networkx/networkx:
  Fix documentation typos for clustering
Revert cycles to repeat starting node at the end.
Slight speedup in simple_cycles.  Order differs from recursive now.

Popping nodes from the end instead of beginning gives a different order,
but still valid.  Cycles now are a cyclic permutation of those reported
by recursive routine.  This revealed holes in tests that are fixed here.
Merge branch 'pr/890'

* pr/890:
  Slight speedup in simple_cycles.  Order differs from recursive now.
  Revert cycles to repeat starting node at the end.
Merge pull request #890 from dschult/master

Non-recursive and faster simple_cycles