Manage dnsmasq by upstart instead of init.d

This is partly because upstart does process monitoring, but also partly
so that we can disable dnsmasq from automatically starting with a broken
config on ubuntu and hosing all dns requests for a while
Improve upstart script and add custom resolv.conf file
Remove ignore_resolvconf option

This was necessary for configuration via init.d. That has now gone.
Remove unused template
Make upstream servers configurable
Fix syntax
Create separate upstart job to register dnsmasq with resolvconf

The previous method of registering with resolvconf breaks when using
`/sbin/restart dnsmasq` -- because restart runs pre-stop stanzas but not
pre-start or post-start stanzas. So restarting dnsmasq would cause it to
unregister itself from resolvconf but never to reregister itself.
Ditch registration with resolvconf

just use the resolvconf's use_local param to register dnsmasq
Specify resolv-file in config snippet rather than in upstart job
Extract upstart job to files/ directory
Extract resolv.conf template to templates/
Extract dnsmasq::upstreams class
[Breaking change] don't automatically create resolv.conf file

We should be able to either specify using resolvconf to get our upstream
configuration, or specify a list of servers to generate a static
resolv.conf file; we shouldn't tie the user's hands.
Hardcode custom resolv.conf filename

There's no reason for this to vary across distros.
Add class for using resolvconf-generated configuration
Add service_type param

Rather than having conditionals on facts in the middle of puppet code,
it feels better to extract this decision-making to the params class.
Remove parameters which are no longer used

If you want this functionality, use the dnsmasq::upstreams class instead
Clean up whitespace in template output
Make dnsmasq::upstreams functionality available as dnsmasq parameter
Make dnsmasq::resolvconf functionality available via parameter