Reverse Cuthill-McKee reordering of sparse graphs

Added the symrcm function that takes a symmetric graph in CSR or CSC
sparse format and returns an array of row and column permutations that
reduces the overall bandwidth of the underlying matrix.  This is useful for 
direct and iterative sparse linear solvers.
assert_equal(perm, correct_perm)