[NEW] Reload keys when the keyring is modified

- GPGKeysChangedNotification triggers a rebuilding of all keys.
- Once the rebuilding is finished send a GPGKeyManagerKeysDidChange notification
  which all applications using Libmacgpg should listen to.
- If keys are already being loaded and new GPGKeysChangedNotification are coming
  in, these are ignored, but trigger a reloading of the keys, once the prior loading is
  completed.
[FIX] Set primaryKey to nil on dealloc to avoid dangling pointers.
[NEW] Build key caches for secret and public keys.
Remove memory leaks.
[NEW] Lazily load all keys if not yet available.