Possible approach for including CSC and CSR matrices without undue code duplication. There's still the issue of how to choose between the two formats, since technically they're the same data type. If that means changing the assemble interface to include extra arguments then this might be a bad idea.
Going to redo the entry point for graph and sparse matrix types to functions in the fempack module, basically implementing a constructor instead of the clunky init/assemble routines.
Added CSC matrix, which passes unit tests. Changed the entry point for graphs and matrices, which is used in unit tests and example.