Matrix signals

This adds MatrixSignal and RegularMatrixSignal types, and fixes #2.  It makes working with matrices a little nicer (no need to generate lots of Views), but I don't like the two-fold increase in complexity (now there are four types!).

At first I wasn't sure I was going to merge this, but the more I think about it, the more I think it's a nice gain.