Some improvements to reduction code:

1) Compensated reductions (Kahan sums) are now faster and the code is more versatile
    (you can actually tweak number of threads per block etc.
2) Also fixed an odd bug in test_reduction.cu ulp-error computation, which only
    presented itself on some platforms (and compiler optimization levels)