Visual query builder

Still working on:

* Docstrings/better variable names
* Precompute compatibility
* Adding a setting to disable pycode altogether
Okay, I am not treating it as a `step` but I gave it a place within the `query` data structure so `query`s can be `JOIN`ed.