Change how NewPlannerTestSupport works

Now uses a failure that makes it easier to see where the problem originates from
Add ExpandPipe and plugged it in

* Still not able to handle self referencing patterns
Add toTreeString to LogicalPlan to aid debugging
Add uniqueness predicates for MATCH patterns
Add code for expand that expands into already existing patterns
Tweak of cartesian product cost
Fixed incorrect shared lock holder list resizing
Added support for relationship by id plans
Server ITs that start their own server must extend ExclusiveServerTestBase.

Otherwise there are potential port clashes with the other server ITs
which share a single long-running server (and hence flaky tests).
Merge pull request #2160 from systay/relationship-by-id

Relationship by id in Ronja
Default to UTF-8 for the LOAD CSV input stream
Merge branch 'load-csv-utf-8'
Fix sorting of logical plan candidate list and ensure the best plan is chosen
Enable two ignored tests for Node by ID and label scan planning
Fix build by temporary disabling a failing test
Swapped last deadlock test to use new Locks API.
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