Implement csr_binop_csr for canonical CSR matrices
CMake: rework FindGMP, use GMP_DIR

Now the user can specify the base directory for GMP as follows:

cmake -DGMP_DIR=/some/path .
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 #276 from certik/cmake_paths

CMake: rework FindGMP, use GMP_DIR
Merge pull request #274 from thilinarmtb/csr_binary_op

Implement csr_binop_csr for canonical CSR matrices
Added additional CMAKE options

Added:
* DWITH_PRIMESIEVE
* DWITH_ARB
Merge pull request #281 from sushant-hiray/readme

Added additional CMAKE options
Merge branch 'master' into wrappers

Conflicts:
	src/sparse_matrix.cpp
Merge with master, rename `push` to `push_back` in VecBasic class