Fold{Rows,Columns} implementation and Reference implementation.

I believe I have Fold{Rows,Columns}  implemented as you suggested with the addition of a reset() method.  I've added a test as well.

The reference implementation appears complete, but entirely untested. Writing all the code was useful in becoming familiar.  Although it raised a question: Why does the family of Vector classes exist? The complexity it adds is immense (and doubled the size of the Reference implementation), but other than eliminating one index for get() and set() calls, I don't see the benefit. It makes me wonder if Vector were redeclared as derived from Matrix and you'd get the same functionality, the same performance, and you'd elimination several classes and thousands of lines of code. Why isn't a Vector just a Matrix with one column or one row?