Replace require/notify with chaining

Cleaner syntax. The only functional difference is that notify the containing
class will now trigger a reload.
Clarify and test for OS support - Ubuntu/Debian

AFAIK there isn't a `resolvconf` equivalent for EL, or any other non-Debian
distros. So raise an error if this module is used on such a system.

This might normally be done in a `::params` class. But we don't have enough
variables, especially vars shared across classes, to make it worthwhile. We
also only want to test for a single OS. So I've implemented it in the parent
class for the moment.
Simple spec tests for package and reload classes.
Change how params are passed between classes

Move the param defaults (and thus documentation) to the parent class and
have the relevant sub-classes source them from that scope and validate
locally.

This is the same pattern applied to our openconnect module to workaround how
defaults behave when `undef` is passed in. This doesn't strictly affect us
here, because we don't currently have any mandatory params. But now is a
good time for consistency. More details here:

gds-operations/puppet-openconnect@50a081be5fc1cdb10c2dfc9a2ec82180b47a94bf
Flesh out example in README

I'm reluctant to give exhaustive details of the available options in the
README since they are well documented in the class using `puppetdoc` format.
Duplicating is likely to lead to one or the other being badly maintained.

I really wish there was a nice mechanism for rendiner `puppetdoc` to GitHub
or Forge READMEs.
Merge pull request #2 from gds-operations/more_module_standards

Implement more module standards