unbreak of jvm shutdown hooks

this change makes sure the drivers does not keep the jvm running on its own.
now the jvm can detect that all work is done and start to shutdown.
while shutting down registered hooks can be used to stop the driver.

cluster building and closing can be placed close the each other (in the source code) as suggested in:
https://code.google.com/p/google-guice/wiki/ModulesShouldBeFastAndSideEffectFree