Add PGPPacket.copy and pull out PGPPacket._serialize_body
Use these with _serialize_signature_packet_target to compute key
fingerprints in _parse_generic_public_key_packet. I'd previously been
hashing over the whole (sub)key packet, but RFC 4880 says the hash
should just be over the public-key part of the packet, even for secret
keys [1]:
A V4 fingerprint is the 160-bit SHA-1 hash of the octet 0x99,
followed by the two-octet packet length, followed by the entire
Public-Key packet starting with the version field.
I've added the fingerprint_target stuff so I don't hash the
secret-key-specific fields.
[1]: http://tools.ietf.org/search/rfc4880#section-12.2