Split out PMatrixScaling protocol
Misc edits
rename all-dimensions to dimensions
Add mset function and supporting protocol