reductionKernel to return re-usable kernel

- fixed issues with reduce on larger arrays
- removed extra kernel class from kernel context