printing: fix srepr of empty Matrix with nonzero dimension

`zeros(0, 3)`, `zeros(3, 0)`, and `zeros(0, 0)` all have srepr of
"MutableDenseMatrix([])".  This violates the "eval(srepr(expr))==expr"
idea.  Fix the ReprPrinter to instead produce e.g.,
"MutableDenseMatrix(0, 3, [])" which is consistent with StrPrinter (which
does distinguish between various empty matrices.)

Add tests.
either the comment or the code is wrong: the code uses "exclusive or"