Move PredicateBuilder instantiation to constructor

In order to maintain thread safety and prevent race condition from memoization.
Let's make it protected.