Generate and store handshake key pair at startup if necessary
This branch modifies the IdentityManager to generate and store a handshake key pair at startup if an identity already exists but it doesn't have handshake keys.
A generic OpenDatabaseHook interface replaces the Client interface and the IdentityManager's storeLocalAuthor() method. Anything that needs to use the DB at startup before services are started can use this interface.
Closes #1538 (closed).