New PGP types

More PGP types to make it more easy to distinguish between what is being
passed around/operated on.
PGP is now abstract.
PGPDetachedSignature, PGPKey, and PGPMessage inherit from PGP.
PGPPublicKey and PGPSecretKey inherit from PGPKey.
PGPSignedMessage is now PGPCleartextSignature.