Batch writer thread empties buffer into channel

instead of each append call, which allows for less calls to
FileChannel#write and less I/O wait for append threads.
Synchronized shutdown, since the log channel needs external synchronization
Remove unused utility code
Fixes array values parsing issues in Extractors

where an empty input value "" would return [null], or [0] in long[] case,
very unexpectedly. Also added more tests to verify this behaviour in some
corner cases.
Removes auto-boxing from CSV primitive-type extractors

By having each Extractor by state-ful and have specific accessor methods.
Merge pull request #3310 from chrisvest/2.2-remove-unused

[2.2] Remove unused utility code
Merge pull request #3283 from tinwelint/2.2-empty-log-buffer-in-force-thread

[2.2] Batch writer thread empties buffer into channel
Merge pull request #3311 from tinwelint/2.2-no-csv-boxing

[2.2] Removes auto-boxing from CSV primitive-type extractors
Removes Apply in most cases where it is not needed
Merge pull request #3314 from systay/unnest-all-the-things

Removes Apply in most cases where it is not needed
Moved CypherVersion from compiler to the Cypher top module
Move PlanDescription et al to the Cypher top-module
moving CypherException from compiler to top lovel module