fix a bug that gives me a weaker classifier in ICF

Previously, we use the fast precomputed result to compute weak
classifier, however, the computation doesn't take into account that for
some features (especially lower-order features), examples may share the
same value.

This diff fixed his problem by precompute skip flag as well. Also,
introduced USE_SANITY_ASSERTION flag, with this flag, I can put more
sanity assertions that requires substantial computation there, for,
yeah, sanity check (which, helps uncover this problem BTW).