Fixed bug on CPU implementation of multi-inner_prod
Tests: Applied finer granularity. More tests, but each more light-weight.

This is mostly achieved by splitting single and double precision tests
into separate executables, sharing a common implementation in a header file.
matrix-test was additionally split into row- and column-major tests.