Sparse matrix multiplication: only convert array if needed (with proper fix branch)

This overrides https://github.com/scipy/scipy/pull/4274 according to this comment: https://github.com/scipy/scipy/pull/4274#issuecomment-67024414

Fixes https://github.com/scipy/scipy/issues/4203

Also include the change requested in https://github.com/scipy/scipy/pull/4271