Query support

* Analyses are first first-class citizens, with get/set methods
* Easily modify parameters on an analysis and rerun the query
* Run multiple analyses together in parallel, with a unified callback