Visual query builder

Still working on:

* Docstrings/better variable names
* Precompute compatibility
* Adding a setting to disable pycode altogether
why have `val` key in arg? Instead of the dictionary in `val` on arg directly?