now using general sparse matrices

  * see Data.Matrix.CRS for the representation

  * lightly tested: used the same number of iterations for 100 arbitrary
    vectors as did the non-sparse version

  * 16x speed-up and about 10x less memory needed

  * I suspect that the function that builds a sparse matrix is currently *very*
    inefficient (mkUCRS)

  * I haven't inspected the generated code: I just lathered on INLINEs for now

  * we're still not using the quasicyclic structure of our decode matrix