Fixed covariance computation in CStreamingMMD and some other changes

Changes made

 - While computing covariance matrix in streaming mmd for multiple
   kernels, the samples are shuffled and redistributed in the same
   proportion using WITHIN_BLOCK_PERMUTATION approach
 - A number of blocks are streamed at once in each burst which speeds
   up the computation. How many blocks are to be streamed depends on
   the total number of samples and blocksize, but a higher value is
   suggested for faster execution. Default is 1000
 - Fixed Gaussian approximation of null-distribution for CLinearTimeMMD
Merge pull request #2309 from lambday/feature/btest

Fixed covariance computation in CStreamingMMD and some other changes