Updated CStreamingMMD and CLinearTimeMMD with new formulas

CStreamingMMD is redesigned and most of the implementation details are
pulled up to this base from CLinearTimeMMD. This allowes implementation
of further streaming MMD classes (B-test) easier since the subclasses
now have to define only two methods on their own, namely

 - compute_stat_est_multiplier()
 - compute_var_est_multiplier()

All Streaming-MMD subclasses now support two ways for statistic and
variance under null estimation, namely

 - S_UNBIASED, S_INCOMPLETE (for statistic)
 - WITHIN_BLOCK_PERMUTATION, WITHIN_BLOCK_DIRECT (for variance)

The sanity of the existing unit-tests in linear time mmd are checked
against python code that can be found at
https://github.com/lambday/shogun-hypothesis-testing/blob/master/btest.py
Also, new unit-tests are added for different number of samples and
incomplete type statistic. Kernel selection unit-tests are adjusted
with local-machine computed results.
good!