BUG: sparse: fix crashes/wrong results in broadcasting multiply

The dia_matrices used to broadcast column/row vector elementwise
multiplications should be square.  The matrices are passed directly to
the internal _mul_* methods, which make no data size or shape checks, so
wrong size gives wrong results or segfaults with no warnings.
Merge pull request #2937 from pv/sparse-mul-bugfix

BUG: sparse: fix crashes/wrong results in broadcasting multiply