Added the PublicKeyManager which fetches and caches public key from
other users (blocking). Implemented and tested.