Implement csr_binop_csr for canonical CSR matrices
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.
Fix a bug in `set()` in CSRMatrix and add tests for csr_binop_csr_canonical

* `set()` method in CSRMatrix was not considering the case where we set
  a non-zero element to zero
Merge pull request #274 from thilinarmtb/csr_binary_op

Implement csr_binop_csr for canonical CSR matrices