Expose dnsmasq::client functionality

Wrap these through a single class which by default will configure
dnsmasq::client and point the resolv to itself. The `server` param can be
set through hiera or a param class, to turn a node into a server.

The order of hosts, resolvconf, and dnsmasq is important. We don't want to
point `resolv.conf` at dnsmasq before it's setup, which would break all
resolution. Thankfully dnsmasq will poll for changes to `resolv.conf`. We do
however want it to load `/etc/hosts` the first time.

Again cribbed from @nickstenning
Pass ignore_resolvconf to dnsmasq

Tells dnsmasq to read the resulting `/etc/resolv.conf` for upstream servers
instead of hooking into resolvconf updates directly and creating
`/var/run/dnsmasq/resolv.conf`.

This is, in part, because we are cheating and not using resolvconf correctly
by just writing `resolv.conf.d/head`. This means that our custom internal NS
doesn't appear in dnsmasq's upstreams.