The scalar and array value interface classes are largely copy+paste so can easily be made templates PVScalarValue<> and PVValueArray<>. Currently parametrized only by value type. Also the *ArrayData helpers become PVArrayData<>