Reduce boiler-plate required to add new predicates - resolves #37

AbstractRetryablePredicate now provides a default implementation of:
public Predicate getPredicate(Term... args). (Also added tests for
AbstractPredicate.)