arrays: add generic gemm and gemv and operations

- add generic gemv, gemm and matrix * matrix and matrix * vector
when types are not lapack types or a different.
- This is certainly much slower than lapack,
but it is useful to write generic code, or non critical parts of the codes.
- added 2 new tests for this.