ISPN-4670 Refactor Predicate/Predicates to not use IntervalTrees for the single-filter scenario

* Usage of IntervalTrees is beneficial only when we have many predicates, like in the continuous query use case but it slows things down in the single-filter scenario.
* IntervalTree now requires the interval bounds to be Comparable