Add a blocksparse multiplication implementation

This is a first step, it may still need more work.
I don't implement the grad for now.  Unless you mistrust the grad of scan and dot, I can't see how it could be bad.

If I ever get a non-scan implementation that needs its own grad, I'll add the test.