Implemented ViennaCL matrix sums

Implemented sum() for the ViennaCL backend (for now only for full matrices, no blocks). The sum is performed using a custom OpenCL kernel which is compiled once when the function is first called. I'm gonna do the remaining sum and square methods in a similar manner once this is merged.

@lisitsyn, @lambday, @karlnapf Please take a look. Also, when can we merge this into the develop branch?
Can we generify this thing to add other kernels with less repetitive code?