Enhance the library, add UTs.

Enhancements:
 - Averaging method for replacing missing values in DataFile.
 - Parallel computations use the same cross validation data
   split scheme.

Additional:
 - Library bug fixes.
 - UTs for SearchAlgorithm.
 - Refactoring of SearchAlgorithm.