Implemented ViennaCL matrix sums
added utility functions for opencl kernel generation
added ViennaCL implementations for the rest of linalg's methods
Merge pull request #2389 from khalednasr/feature/linalg

Implemented ViennaCL matrix sums