Fix reduce-by-key with a fancy output array
If you gave ReduceByKey a fancy output array that decorated another array, you could get a runtime error for using an invalid array (if the device adapter used the generic algorithm). The problem was that ReduceByKey creates a temporary array, and that array was given the same storage as the output array. That might not be valid for fancy arrays, so instead use the default storage for the temporary array.