Add a blocksparse multiplication implementation

This is a first step, it may still need more work.
If you are 100% sure that is safe and you can convince Fred, then I'm ok with this.