0.3.0
* new method `Janeway#each` to iterate over matched values without collecting them all first
* performance improvements.
Rewrote the interpreter stage in preparation for later work.
Previously it was a set of methods that interpreted an element then used switch statements and "send" to forward the results to the next filter method. Each time a filter method ran, it had to do some work to figure out where to send its output.
Now it first builds a pipeline of expression interpreters which just forward their output to the next element in the pipeline.
All the work of deciding "what comes next" is done once up front, instead of being repeatedly done during interpretation.
This significantly sped up every query, and is especially noticeable on large data sets.