TAJO-1112: Implement histogram interface and a candidate histogram

Hi everyone,
This patch contains:
+ a histogram interface with utility functions, including selectivity estimation
+ 2 candidate histograms: equi-width and equi-depth
+ some unit tests for integrity and accuracy of the histograms

In the accuracy tests, given a 100k data set and a 10k random sample (10% of the data set), the estimation accuracy is about 80% - 95%, for both random data of uniform and Gaussian distributions. Histogram construction time (just consider the first construction time, without cache effect) is about 15 ms.

Please review and advice me if anything should be improved. Sincerely!
Do you have any reasons for restricting the type of samples as double? 
In Tajo, Datum is the basic class to contain values.
IMO, NumericDatum will be more proper type rather than Double.