Add restricted_uniq_range_values , bits::rev, symbol_eg and symbol_es

This pull request adds the following functionality including tests.

1. bits:rev(x): reverses the 64bit integer x
2. symbol_eg(x): return the next symbol in the wt which is equal or greater than x
3. symbol_es(x): return the next symbol in the wt which is equal or smaller than x
4. restricted_uniq_ranges_values([x_i,x_j],[y_i,y_j]): returns in ascending order all uniq values in range [x_i,x_j] which are within the y-range [y_i,y_j].