New predicatedBarrier service which will create a promise based on a provided predicate and timeout.