Properly closes http client to avoid single-connection conflict
Changes to better support Neo4j Desktop app

o Specifies service classes instead of packages to JAX-RS. Specifying
  packages requires JAX-RS to scan the classpath and doing that makes it
  more sensitive to environment changes... such as running the whole
  application inside a wrapped .exe file.
o Changes so that Configurator#getDatabaseTuningProperties() is always
  honored. This makes it much easier to pass in any Configurator implementation.
o JAX-RS ServletHolders gets created after all modules have registered all
  its service, since multiple modules might register at the same mount point.
  This problem became apparent due to the classes/packages change above.
Merge pull request #949 from tinwelint/desktop-server-changes

Changes to better support Neo4j Desktop app
Extra debugging output, some useless field removal, tcpNoDelay added
Fixes responding to internal messages, having it handle the headers properly
Fixes case where single HA instance would perpetually try to elect a master

When an HA instance is alone in the cluster, it will try to contact every
 other instance (i.e. none) for votes and, since by default it holds the master
 role itself, being the only instance, it will wait for the first response
 to come before asking itself. But a response never comes, so the election
 time outs, rinse repeat. This commit fixes that.
It also introduces a test case that demostrates the problem.
Finally, it refactors the ElectionContext to not require delegation
 from ElectionState method calls, making mocking easier.