MAINT: pchanial's improvement of input validation in sparse's __mul__

Retry of @pchanial's https://github.com/scipy/scipy/pull/4066, this time with tests and in its own PR branch.  Also changed `raise NotImplemented` to `raise NotImplementedError`.
Here's the benchmark: https://gist.github.com/pv/eb91c1642aa6c3ea2816
Here's the discussion: http://thread.gmane.org/gmane.comp.python.scientific.user/30229/