cross validation pruning added + changes in clone_tree method in TreeMachine
Implemented the basis for convolutional neural nets
added support for non-linearties to CConvolutionalFeatureMap
CMultilabelAccuracy class created along with modifications of CStructuredAccuracy and CMultilabelSOLabels for multi-label classification accuracy
Implemented max pooling for CConvolutionalFeatureMap
so_multilabel.cpp example added for multilabel classification
added support for arbitrary strides during convolution
CART cv_prune test added, TreeMachine clone_tree refactored
Merge pull request #2266 from khalednasr/convnets

Implemented the basis for convolutional neural nets
coverity scan defects fixed
Merge pull request #2274 from mazumdarparijat/C45

coverity scan defects fixed
Merge pull request #2273 from abinashpanda/develop

CStructuredAccuracy class modified to compute accuracy for multilabel classification
Merge pull request #2261 from mazumdarparijat/CART

cross validation pruning added + changes in clone_tree method in TreeMachine
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) easiler since the subclasses
now have to define only two methods on their own, namely

 - compute_stat_est_multiplier()
 - compute_var_est_multiplier()

Linear-time MMD now supports two ways for statistic and variance
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.