Simplified the way separate header is extracted in multi-file case

in the batch importer, where multiple files are seen as one Readable, and
so the header is always extracted from the first line of the data stream.
Although there's still support for getting the header from a completely
different source.
Moved generic option interpretation into Args
Add slave id to replication commit error message.
Merge pull request #3373 from martinfurmanski/2.0-replication-commit-error-print-slave-id

Add slave id to replication commit error message.
Merge remote-tracking branch 'upstream/2.0-maint' into merge-2.0-to-2.1
Merge pull request #3392 from lutovich/merge-2.0-to-2.1

(2.0)-[:MERGE]->(2.1)
Merge remote-tracking branch 'upstream/2.1-maint' into merge-2.1-to-master

Conflicts:
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/transaction/TransactionPropagator.java
Improved unnesting of Apply

Instead of using complicated rewrites that tried to remove Apply
in a single step, this rewriter uses many small rewrite steps that
each is very simple to implement and understand. Together
they unnest most plans with Apply in them
Added the concept of input groups in batch importer

where one group consists of one or more files, logically seen as
concatenated by the batch importer. The first line of an input group
defines the header. An import can have multiple node/relationship groups.

For the command line tool this looks something like:

  ./neo4j-import --into path/to/db
                 --nodes file1;file2;file3;...
		 --nodes file4;file5;...
		 --relationships file6;file7;...
		 ...
Merge pull request #3396 from systay/more-unnesting

Improved unnesting of Apply
Merge pull request #3393 from lutovich/merge-2.1-to-master

(2.1)-[:MERGE]->(2.2)
Merge pull request #3384 from tinwelint/2.2-bip-input-multiple-files

BatchImport input multiple files
Expose a way to ask a lucene index to sample index selectivity

o Scan a sample of index entries and compute uniqueSampledValues / sampleSize
Add a new CountsKey for index entry counts
Maintain index update counts from index proxies

o OnlineIndexProxy will ensure that the index counts are updated
o Fix bug when generate LazyIndexUpdates to never construct 'overlapping updates'
o Cleanup code in LazyIndexUpdates
o Make sure we update index update counts during population
Add minor version to CountsStore such that we can flush safely on index flip (outside of log rotation)

o Ensure we compare CountsKeys correctly by type
o Fix reading of index keys
o Add flushIndexCounts() to IndexStoreView
Remove index counts when dropping an index
Make index stats part of SchemaRead and add indexNumberOfEntries

Rationale: For planning to be sane, indices shouldn't appear or disappear out of nowhere, hence we need to be tied to the schema read lock
Add IndexStatisticsTest
Pass on transaction id to index updaters