Add mutualInformationBtwSets in table.h

This function computes the mutual information between 2 sets of
features given a ctable.
Port powerset to C++11 (resulting in simplication) + improve comments
Port functionUTest to C++11
Fix bug in powerset
Implement feature_selector::mi

mi returns either the mutual information between feature sets, or an
approximation of it, actually more accurate if we assume the number of
interaction is up to diversity_interaction.
Optimize diversity pressure for feature sets
Merge remote-tracking branch 'refs/remotes/upstream/master' into diversity_feature_selection
Remove redundant feature sets selected by moses before return them
Improve logging, mostly for feature selection within moses
Improve logging when closing several demes
Add feature_selector_parameters::diversity_cap parameter

Add cap to retain and consider only a subset of feature sets during
feature selection within moses. We do that to avoid spending too much
computation in ranking features according to diversity.
Fix feature ranking accounting to diveristy
Add moses program options to control feature selection diversity
Move tableUTest.cxxtest and test datasets under tests/comboreduct/table
Add assert about feature set range in mutualInformationBtwSets

I noticed using too big feature set indexes doesn't crash, instead the
computation is wrong (thanks C++!)
Add unit test for mutualInformationBtwSets
Remove boost::phoenix (use lambda instead) due to boost program option conflict
Add missing CMake file
Fix bugs + add more log about feature sets diversity
Add program option --min-pool to control the min pool size to enable multithreading