vnl_sparse_matrix::mult - size of q buffer should actually be (this->rows())*pcols.

I ran into a subtle bug in vnl_sparse_matrix::mult(), where the code assumes the p and q buffers are the same size (prows*pcols). However the size of q should really be (this->rows())*pcols.

ie, in matrix multiplication an (a,b) size matrix multiplied with a (b,c) size matrix results in a (a,c) size matrix, not (b,c).

(I have a duplicate pull-request open with ITK, but thought you would probably want the tiny fix too?)