Adds tests for `cri::matrix`

Few tests has been added. And there has been few fixes to the matrix interface. Notably:

- `empty` may return true
- `max_size` now returns the size of the matrix
- `cri::col_major` is now used correctly