Implement functions to get diagonal entries and scale rows and columns
Fix some bugs with `from_coo` method and `is_canonical`

* `from_coo` method was not sorting the indices
* `is_canonical` method was not checking whether the indices are unique
  (i.e. no duplicates)
* Add some tests for `from_coo`
Throw an exception if scaling factor is zero
Add tests and overload `eq` for `CSRMatrix`

* Add tests for `csr_has_canonical_format()`
* Add a test for the exception when scaling factor is zero
* Overload `eq()` for CSRMatrix class
Merge branch 'master' into csr_functionalities
Fix get/set methods after merging #270
Implement a `is_a()` method for matrices

* Use static_cast instead of dynamic_cast
Fix comment on `is_a`
Merge pull request #271 from thilinarmtb/csr_functionalities

Implement functions to get diagonal entries and scale rows and columns