Moved API level usage of internal class GraphDatabaseAPI into internals.

(cherry picked from commit 564e177a3935632b28a819e1b9686bee92c7fe6a)
Moves monitoring to its own package and adds support for monitor tags

Monitoring was part of the o.n.k.impl.util package, now it is moved to o.n.k.monitoring
Monitors has support for tags added so finer grained control over listeners can be
 achieved
Monitors no longer accepts a logger as a constructor argument - that functionality
 can now be properly achieved by adding a Monitors.Monitor to the Monitors instance.
Packs logged string in one line for easy grepping in source
Better logging around elections

logs full vote list, filtered votes and biased instances for
promotion/demotion.
Remove unnecessary test garbage files
Moved stability changes from master into 1.9 for SubProcess.

 NOTE: If you are forward-merging this change into 2.0, you can throw
       away all the changes in this commit, they are already present
       in the master branch.
Fix for incorrect exception handling on request reading error in HA.

 o Added test and implementation for better error handling on early request parsing failure.
 o Moved serialization of requests and deserialization of responses into Protocol class.
 o Added handling of BranchedDataException in HAMS.
Merge pull request #1850 from jakewins/subprocess-stability

Moved stability changes from master into 1.9 for SubProcess.
Merge pull request #1848 from jakewins/com-error-handling

Fix for incorrect exception handling on request reading error in HA.
Fix for race between kernel panic and mode switching

where a thread switching role to slave and
HaKernelPanicHandler thread were competing to harden the master
delegate handler. While all components were switching to their slave
versions a kernel panic event came in and made its switch, ending with
hardening the master delegate handler. All components would take that
as a sign about the master delegate being ready to use. When the
slave switching was done, that thread would set the master delegate to
the actual one, but all components would have already gotten a concrete
reference to the master such that the latter setDelegate call would
not affect them.

Fix is to only have setDelegate() (not harden()) dereference the Concrete
instance so that a setDelegate() after harden() will override that
delegate, making it visible to the peers of it.
Merge pull request #1852 from tinwelint/1.9-delegate-hardening

Fix for race between kernel panic and mode switching
Merge branch 'neo4j/1.9-maint' into master
Merge pull request #1857 from cleishm/2.0-merge-1.9-maint

2.0 merge 1.9 maint
Replace InputToken with InputPosition

And only track start, not entire range
added test to assert that transaction push does not block other transactions
Merge pull request #1864 from cleishm/ast-position

Replace InputToken with InputPosition
Merge pull request #1854 from lassewesth/commitpushcontention

added test to assert that transaction push does not block other transactions
Removes debug code left around
Fixes and enables test for unregistering Monitor listeners

The test MonitorsTest.shouldUnregister() was failing with a ClassCastException.
 The reason was that it was doing the cast on a field different than the one that
 it was performing the instanceof check. This error is now fixed and the test
 passes.
Adding System.out of which processes gets dumped, for debugging purposes. It's OK since this class is used for in testing/debugging