Adding householder matrix kernel

Also adding versions of transpose, matrixMult and householder that
return the cl::Buffer instead of the matrix result. This is important
for speeding up usage of these results in other kernels, since the
previous method would require reading the buffer into an array,
returning it and re-writing it to the GPU

By just returning the buffer we skip these very slow operations