Add `reshape()` and `Mat<eT>::reshape()`
This (relatively) simple MR adds standalone reshape()
and Mat<eT>::reshape()
support, as well as a whole battery of tests.
I'll let it sit for a couple days before merging, in case anyone has any comments (and to give myself time to review it).