[merge FIRST] Predicate types: greater, lower, strictly greater, strictly lower

Support predicates of type
```age > 5```, ```number_children <= 3```
For the moment this assumes that the variable can use the "usual" comparison operators "<=", ">", etc...
For more complex types, this will need to be iterated on. 
The four comparison types are implemented: "<=", "<", ">=", ">"
more tests, metaprogrammy goodness to get edge cases.