(PUP-3750) Support :include: in mailalias type

The mailalias type does not allow the specification of included files,
which contain an alias's elements. Such alias entries are commonly
specified in the an MTA's aliases file through the following syntax.

aliasname: :include: /path/to/file

Specifying the rest of an ":include:" line as a recipient does not
work, because the existing mailalias type will quote the entry.

This change adds a new parameter named "file" to the mailalias type,
which allows the indirect specification of a file containing the
recipients.  The parameter parses and generates ":include:" alias entries.
Since the `mailalias` type doesn't manage the content of the `file`, this sort of thing is usually defined to be a `newparam` instead. For example, for a package resource, `ensure => '1.2.3'` is a property, but `source => 'puppet:///...'` is a parameter, which tells the provider where to get the package.

That said `mailalias` uses the parsedfile provider, and I know little about that. /cc @Sharpie @adrienthebo Does it make sense to use `newproperty` here? If we make it `newparam`, will parsedfile provider do the right thing?