Startup sequence changes for proper management of errors on NodeManager.start()

NodeManager no longer updates state from a DataSourceRegistrationListener but from start()
 This is to properly fail in case recovery of nioneodatasource does not complete properly
IAGD startup sequence change so NodeManager is started after all kernel extensions
 are registered, so all datasources have been recovered (index providers are kernel
 extensions these days)
PropertyIndexManager lifecycle is controlled from IAGD and not NodeManager
Changes in HAMS ensure correct lifecycle management. It also ensures that a
 store is always present instead of waiting for one from the master before
 starting anything.

Slight cleanup on commented out code, reduntant method overrides and whitespace.
Merge pull request #739 from digitalstain/nodemanager-startup

Startup sequence changes for proper management of errors on NodeManager.start()