test no non-directed cycles of digraph

  Thanks to Tom Dye for this test.
only follow directed edges in digraph cycles
cleaner cycle reduction
* graph.lisp: New functions to-identity-matrix, to-value-matrix, and a revised to-adjacency-matrix
to-adjacency-matrix should notice edges w/o values
updated the conversion-to-adjacency-matrix test
simpler to-identity-matrix

  Perhaps this functionality should be provided by an external matrix
  library.
adding topological-mapc(ar) functions
adding boilerplate for graph-matrix
clean up matrix methods in graph.lisp

1. Remove to-identity-matrix because it will be just as easy and
   probably more readable for users to do something like

       (make-identity-matrix :length (length (nodes graph)))

2. Use nil for the value of missing edges in a value matrix

3. Renamed from-identity-matrix to the more accurate from-value-matrix.
adjacency-matrix doesn't need to know edge values
generate a gsll matrix from a graph
Revert "adding topological-mapc(ar) functions"

This reverts commit 02cafd71716c5ea857046d5beacb5937b0d50b6d.
generation of Erdős–Rényi random graphs
proper tests for adjacency/value matrices
* graph.lisp: Added method for topological sorting of a digraph
cleanup the last commit

  - move to the appropriate section
  - remove trailing whitespace
  - no lines over 79 characters long
  - fix indentation
  - export topological-sort from package.lisp
improved Erdős–Rényi random graph generation
* graph-test.lisp: Added test for topological sort, amended doc string
Added a method called levels to graph.lisp, with a test in graph-test, and an export entry in package.lisp