fix: Corrected the size of the expected result

The size of the expected result was wrongly set to rows*rows instead of
rows*cols.

Fixed #98

Signed-off-by: Sebastian Niemann <niemann@sra.uni-hannover.de>
fix: Fixed shape check

The check for providing matrices with a acceptable shape was mistakenly
set to enforce column vectors instead of row vectors.

Fixed #97

Signed-off-by: Sebastian Niemann <niemann@sra.uni-hannover.de>
fix: Set in_range to the correct limits

The check to ensure that the requested part is within a row vector
wrongly checked against the number of rows, which will always be 1,
instead of the number of cols.

Fixed #96

I also reduced the computational impact of simple arithmetic operations
on row(..) and col(..) for pure vectors.

Signed-off-by: Sebastian Niemann <niemann@sra.uni-hannover.de>