Cache "Rcode" too.

This allows use to cache NXDOMAIN and NODATA responses.
spin off cache in seperate directory
Adapt all callers to cache/cache.go

Fix up the new internal cache.go package.
add a boolean indicating a hit in the cache
Add some documentation
Put the cache check at the front of the function
Early on look in the cache.

Look in the cache right away. This also works for NXDOMAIN and NODATA
because we just key on the qname an qtype.
Use Ndots correctly
Validate -nameservers and -addr flags
Merge pull request #70 from porjo/quotes

Validate -nameservers and -addr flags
Slightly better checking for valid ip and port.

This check if the value of the port number is also in the allowed
range. Few other Go idiom related changes.
Merge branch 'nxdomaincache'
Keep track of UDPSize and DNSSEC
Set the TC bit when the message gets too large.

This is a stopgap until more and better ways have been put in
SkyDNS to keep messages smaller.
Switch to internal fork of go-metrics

Don't actually want to do this, but ....
And fix the yaml file
initial commit
working systemd