Algorithm for finding simple cycles described by Hawick and James

Here's a implementation of the algorithm for finding simple cycles described by Hawick and James.

K. A. Hawick, H. A. James. Enumerating Circuits and Loops in Graphs with Self-Arcs and Multiple-Arcs. Computational Science Technical Note CSTN-013, 2008.