added random number generation to linalg

Added random number generation to linalg through 2 classes: RandomVector/RandomMatrix that offer methods to fill the vector/matrix with random (uniform or gaussian) data. 

The main point of this is that for the ViennaCL backend, the data is generated directly on the GPU, so that no CPU-GPU copies will be necessary.

@lisitsyn, @lambday, @karlnapf Please take a look.