Sparse blkdiag

I can't live without blkdiag on sparse matrices. This is almost identical to the hcat implementation, except for offsetting the row indices. There's probably a better way to share the common code? And I imagine this kind of thing should be tested, documented, etc.