[MAT-441] tighted svd memory management

This tightens up the svd runner memory management and fixes a
bug in the pinv runner code that used to clobber the argument
whilst computing the svd.