Change the prototype of `csr_binop_csr_canonical` and add more tests

* Chnage the API of `csr_binop_csr_canonical` to accept an output matrix
  to which the results are written
* Add more tests for set method. Earlier the case when matrix is zero
  had not been considered.