Try to avoid letting DeadlockIT leave deadlocks in the shared server.

o The test running after DeadlockIT (TransactionErrorIT) very rarely
  fails because there is a deadlock in the cleanup it does before it
  runs.

o These tests (and many other ITs) share a long-running server. My guess
  is that the clean-up at the end of DeadlockIT is not sufficient to get
  rid of the locks -- specifically the executor threads that the test
  use don't get killed off in time.

o This change makes the clean-up of the OtherThreadExecutor more
  rigorous to try to eliminate this corner-case.
Merge pull request #2162 from benbc/2.1-better-cleanup-for-deadlockit

Try to avoid letting DeadlockIT leave deadlocks in the shared server.
Extract test for node/relationship ids seek out of SimpleLogicalPlannerTest

o Code cleanup in idSeekPlanner
Improved guessing cardinality estimator to be somewhat consistent
Fix the selection plans for relationship by ID planning
Merge pull request #2166 from davidegrohmann/ronja-planning-cleanups

Ronja planning cleanups
Add initial hash join planning support
Refactor CardinalityEstimator

Instead of having multiple methods for different kinds of entities
to estimate, make it simply take a logical plan.
In particular, that makes writing tests for planning considerably
easier by just spelling out a partial function that returns
different estimates for different plan patterns.