Added functions to query of a matrix whether getting a row or column can be done fast, and corresponding checks in matrix product routines
Added a test for querying whether getting a matrix row / column is fast responds correctly
More complete test for querying speed, also can reset sub-matrix of a composite without memory leak now
Better name for test of querying speed of matrix slice operation
Started using iterator callbacks for graphs, which compiles & passes tests without breaking API
Minor fix for compliance with ifort
Changed some names of procedures
Combined both of the cs_matrix copy graph routines into one
Made a common procedure to assert correct dimensions for building matrix structure
Added dimension checks to setting a matrix's graph
Added a method for copying sparse matrices, compiles and awaits testing
Copying matrices works, but we need to reconsider whether building a graph should add a reference or not
Was adding too many references to graphs when copying matrices, need to be REALLY circumspect about this in future & document heavily
Matrix product now makes a copy in the event that neither factor can do row/column slices fast
Added a method to get the max row / column degree of a sparse matrix
Using get_max_row_degree (resp column) works with matrix algebra
Added test for PtAP, works
Added RARt routine which works
Renamed some variables because I felt like it