Add member for public and private Key

Groundwork for DNSSEC.
A -dnssec flag

This reads a DNSSEC key file and parses both the public key
and the private key. This also enables DNSSEC signed answer
from SkyDNS.
More groundwork for DNSSEC

Add key parsing function. Move the file dnssec.go to the correct
directory.
Correct the package for dnssec.go
Return DNSKEY when asked for it

When queried for DNSKEY, return it.
make ParseKeyFile public
Allow requests to be signed

Only sign when we see an OPT record with the DO bit set (i.e. the normal
way to signal that DNSSEC is supported).
WIP: the key is signed, except there is no signature data

In progress commit: more infrastructure and testing. The DNSKEY
should be signed, but isn't for some reason.
Signing works
Sign the answer and authority section
Check truncation and set EDNS0 in return

Some DNSSEC fixes.
Update README
typo
Truncate SOA serial to latest hour

This will help in the caching for the Signatures.
Add caching key function
Add signature cache
Use type switch to be more safe when getting the type
tweaks
Proof of concept caching works
Use the new Copy from the dns library