Add missing code for closing the pageCache when used in migration/tools
Move the adversarial file system to the io module
Add a robustness test for the page caches

It uses the adversarial file system to throw lots of exceptions at the page cache implementations.
It currently fails. Badly.
Make the MuninnPageCache survive the adversarial file system

* Fix a bug in the AdversarialFSA where mischief might prevent client code from
  ever reading the last byte of a chunk into a buffer.
* The Muninn eviction thread now no longer dies if flushing on eviction throws
  an exception.
* This makes Muninn able to recover from arbitrary errors, should their cause
  disappear.
AdversarialFSA PageCacheTest

Increase failure probabilities and fix some of the failures in the StandardPageCache.
Not all of the failures are fixed, though, so the test is still failing.
It has therefore been ignored for now, because we want to get the fixes for Muninn into master as soon as possible.
Add parens to documented cypher queries
Ensures transaction committed/closed is in same try block

to absolutely make sure that a transaction id marked as committed will
have its counterpart, marking as closed, sit in the finally block of
the try block marking as committed.
Merge pull request #3066 from cleishm/cypher-doc-parens

[2.1] Add parens to documented cypher queries
Merge pull request #3054 from tinwelint/2.2-tx-committed-close-gap-fix

Ensures transaction committed/closed is in same try block
Merge pull request #3070 from chrisvest/2.2-pc-robustness

2.2 PageCache robustness test based on the adversarial file system
Merge remote-tracking branch 'upstream/2.1-maint'

* upstream/2.1-maint:
  Add parens to documented cypher queries
Merge pull request #3052 from davidegrohmann/2.2-close-page-cache

Add missing code for closing the pageCache when used in migration/tools
Initial identifer namespacing work
Make namespaceIdentifiers less invasive

The rewriter will only introduce special names for identifiers if
there's shadowing involved. Specifically, if an identifier is never
projected through from one scope to another, it will not be altered.
In addition, trivial projections such as `WITH n AS n` are also
understood not to introduce ambiguity to identifiers.
Simplify inliningContext given our new contracts for shadowing

This also allows for more aggresive inlining. See StatementConvertersTest
for examples of AST -> PlannerQuery conversions that are now more inlining
happy.
Improve the clustering of identifiers to address scoping limitations