[2.2] Add efficient unparking in batched forcing.

This helps each thread reach its full potential, and in particular the
single-threaded workload is markedly improved.
Added handling of double-quotes within quoted strings when parsing csv.

In order to handle this I made a minor rewrite removing the
QuoteAwareCharSeeker and made the quote handling a concern of
BufferedCharSeeker instead.
Removed open-csv from LoadCSV.
Fixes case sensitivity issue in legacy lucene index paths

The path under which legacy indexes are stored was changed
 to have an uppercase first letter for the entity type that
 is stored by the index (so, Node instead of node, for example).
 This causes migration from previous versions to fail to properly
 pick up copied indexes, including auto indexes, of course only
 on case sensitive filesystems.
This patch reintroduces the old lowercase naming scheme so that
 paths are built and found as before.
Fixes bug around flattening of plan descriptions

InternalPlanDescription toSeq method was returning a flattened list of all plans, but doing so by
relying on children.toSeq to flatten all children. This was incorrect behavior for Children.toSeq, which
was corrected to only return a Seq of the children, and then the InternalPlanDescription.toSeq was
replaced with a correctly behaving flatten method.
Merge pull request #3351 from systay/plandescription-bug

Fixes bug around flattening of plan descriptions
Merge pull request #3349 from digitalstain/2.2-fix-index-path-case

Fixes case sensitivity issue in legacy lucene index paths
Merge pull request #3338 from pontusmelke/remove-opencsv

Remove opencsv
Removed annoying compiler warnings.
Merge pull request #3356 from pontusmelke/remove-compiler-warnings

Removed annoying compiler warnings.
Merge pull request #3343 from martinfurmanski/2.2-efficient-unparking

Add efficient unparking in batched forcing.
New spectrum execution monitor for batch importer

for better overview of relative step processing costs in the stage(s)
Hopefully solves recent build failures with licensing
Add initial support for determining the freshness of a plan

This involves an instrumented GraphStatistics instance that will
record each "statistical queries" and the observed values, the
result of this process called a snapshot.
In addition, we're also introducing a function defined over two
snapshots that determines if they're diverge enough for the
plans having observed one of them to be scheduled for replanning.

Signed-off-by: Pontus Melke <pontus.melke@neotechnology.com>
Includes more information about which update puller it is, in the event of failure
Merge pull request #3350 from jakub-/plan-freshness

Add initial support for determining the freshness of a plan
Change the read_only flag to ONLY mean that transactions with changes cannot commit. Specifically it now means that the database CAN change if it is a slave in a HA setup.

Format according to new scheme
Change visitor return value behaviour, so that it is consistent in all uses (false means continue)
Introduce checksum on ephemeral filesystem, primarily to be able to compare snapshots.

Formatting according to new template.
Added support for reading CSV header from separate file

and support for having multiple files look like one CharSeeker. There's
also a clearer separation of concerns between, Readable and CharSeeker and
where they are instantiated.
Make sure not to produce non-argument leaf plans for arguments