Encapsulate the state of PowerMultiplyReduce

Create a class MatrixCouple to encapsulate the state previously
maintained in the reducer.
Add specification for MatrixCouple