Cleanup
Refactor Word/Text data constructors into a single one
Change binary Query to take a list instead of two queries

- add intersections1 and differences1 to Intermediate for lists.
  uses foldl1' to be efficient, but the list has to be non-empty
- TODO:
  - query parsing just constructs binary lists :(
  - optimize is a NOOP for now - needs list adjustments