Fix bug in EphemeralFileSystem

When you write beyond the end of a file, the space in between is filled with zeros.
The EphemeralFileSystemAbstraction had insufficient synchronisation in that code, because it allowed
a thread to do a write beyond the end of the file, then another thread would write in the space in
between, and then the first thread would overwrite the new data with zeros.

During the course of debugging this, the PageCacheMonitor has been extended to also observe page
flushes.

Conflicts:
	community/io/src/main/java/org/neo4j/io/pagecache/PageCacheMonitor.java
	community/io/src/main/java/org/neo4j/io/pagecache/impl/common/SingleFilePageSwapper.java
	community/io/src/main/java/org/neo4j/io/pagecache/impl/standard/ClockSweepPageTable.java
	community/io/src/main/java/org/neo4j/io/pagecache/impl/standard/StandardPinnablePage.java
	community/io/src/test/java/org/neo4j/io/pagecache/CountingPageCacheMonitor.java
	community/io/src/test/java/org/neo4j/io/pagecache/PageCacheTest.java
	community/io/src/test/java/org/neo4j/io/pagecache/RecordingPageCacheMonitor.java
	enterprise/enterprise-io/src/main/java/org/neo4j/io/enterprise/pagecache/impl/muninn/MuninnPage.java
	enterprise/enterprise-io/src/main/java/org/neo4j/io/enterprise/pagecache/impl/muninn/MuninnPagedFile.java
Swap forseti clients over to using primitive maps.

Replace Forseti clients usage of regular hashmaps with hopscotch primitive
maps for tracking local lock counts. This makes a large section of the forseti
hot path GC free.

Also includes the optimization from RecordChanges where we allocate a new map
if the existing map has gotten larger than 32 entries.
Merge pull request #3404 from chrisvest/2.1-ephemeral-fsa-threadsafe-backport

Fix bug in EphemeralFileSystem
Merge remote-tracking branch 'upstream/2.1-maint' into merge-2.1-to-master
Merge pull request #3409 from lutovich/merge-2.1-to-master

(2.1)-[:MERGE]->(2.2)
Fixed recently introduced issue in Args#asMap()
imports
Fix CompatibilityPlanDescription toString
Merge pull request #3408 from jakewins/2.1-forseti-gc

Swap forseti clients over to using primitive maps.
Merge branch '2.1-maint'

Conflicts:
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/lock/forseti/ForsetiClient.java
Fixed a problem recognizing an empty header string
Uses real numbers for progress
Batch-import docs.