Revert "Ensure predicates are applied during matching"

This reverts commit 5bb51449dedb10b3b10a6721d3f0f29a2d8e5157.
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
Neo4j edition and version for Server only.

Gathers the Neo4j edition by looking at the type of Neo4jServer that gets started. Gathers the release number by demetering its way deep into the kernel.
Added a test in enterprise that checks that naming for derived classes of AbstractNeoServer doesn't change, since VersionAndEdition service uses those names to compute a Neo4j version.
Renamed the ServerBuilder to CommunityServerBuilder and added AdvancedServerBuilder and EnterpriseServerBuilder.
Added integration tests for the Community, Advanced, and Enterprise version and edition service in the matching module..