Predicates support

Moved here some things from #22 to work on in separately. One thing I want to change is predicate/predicate-type approach. I want to 

- [ ] make `Predicate` a normal type
- [ ] add `Graph` type or use index type as input for the `Query` step
- [ ] index restrictions on predicates (?)
   + [ ] querying index directly
- [ ] more types of predicates:
  + [ ] full-text search
  + [ ] intervals
  + [ ] geo