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
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
Pull out and refactor IndexCountVisitor from CountingIndexUpdater
Only apply index count updates for unprocessed transactions during recovery

o Rename updateXYZ to incrementXYZ CountsStore related methods
o Push transactionId down to IndexUpdaters (and couple them to process only updates for a single transaction)
Replace use of LongRegister with DoubleLongRegister in counts store
Add new type of IndexKey for storing sampling results
Refactored counts package

o CountsAcceptor is now called CountsAccessor and also has read methods
o CountsState => CountsRecordState
o IndexKey is now split into Index{Size|Sample}Key
o CountsTrackerState now uses explicit calls per key type