Fix setFloatArray:... so that it copies the data in case it's on the stack

The function previously relied on `arrayValue' remaining in place long
enough for the async call to read it, which doesn't always happen,
especially if it was allocated on the stack.

I think this also was the cause of https://github.com/BradLarson/GPUImage/issues/847