Add GpuSqrSumAx0 to lower the memory usage on the GPU.

Don't merge yet. I think I'll try to reuse GpuCAReduce.
I'm wondering if this opt run before or after elemwise fusion.  If it runs after, the number of times it will apply is probably negligible.

Also I don't get your comment about trigonometric functions.  Why would there be any memory access timing differences?