Key manager changes to support transport key agreement client
This branch adds a key manager method to support the new transport key agreement client, and refactors the initialisation of the key manager to ensure that its methods can be called early in the app lifecycle.
Part of #2038 (closed).
Edited by akwizgran