GPGKeyManager added.
Remove unnecessary singleton boilerplate when using dispatch_once.
Revert "Remove unnecessary singleton boilerplate when using dispatch_once."

This reverts commit a73b13b2024ac16def4d76bdff735f38e7702601.
GPGKeyManager read signatures.
[NEW] Restructure key and signature classes

- GPGKey and GPGSubkey were merged
- GPGUserID and GPGPhotoID were merged as well
- All Classes are now mere data containers and as stupid as possible.
- Any properties are defined as read only, and only the Key Manager
  is allowed to modify them.
[FIX] Correctly create setters.
[FIX] Only set the primaryUserID if at least one is available.
[FIX] Eliminate release cycle and user designated setter.
Use a more expressive name.
Fix recursive loop.
GPGKeyManager set UserIDs name, email and comment.
[FIX] self is allowed in dispatch_once if it's only short lived.
Merge branch 'key-management-rewrite' of github.com:GPGTools/Libmacgpg into key-management-rewrite
GPGKeyManager simple try catch added.
[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.
GPGKeyManager fill keys async.