[ cleaning ] Getting rid of the useless main.ml
[ equal + refactoring + doc ]

[equal] is now raising an exception if it comes across an
[R.zero] cell. It should *never* be called on matrices which
are not [R.zero]-free because it can silently return [false]
when comparing two "morally equal" matrices if one of them has
extra [R.zero]s.
[safeEqual] is a safe alternative to [equal] that starts by
[trim]ming the two matrices.

The same patterns kept popping up quite often when manipulating
values of the [option] type hence it being factored out in the
module OptionExt. The same goes for [foldTable].

The whole project was completely lacking documentation. This is
a first attempt at filling the gap for SparseMatrix.