Add test that exposes missing rels when matching using explicit node sets in Cypher
Further nail down bug to returned iterables not being stable
Make QueryContext solely use Iterators

Investigating a traversal matching bug hinted at Java->Scala conversion draining Iterable instances together with the first iterator returned by them.
This change was made to avoid such problems in the future and be more explicit about when data is retrieved from the database.

o Introduce DynamicIterable as a way to construct an Iterable that re-reads from the graph
o Replace FilteringIterable with SingleStep.FilteringIterator
Reduce pruning to fix missing relationships bug