(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.
I assume you mean we should be validating that not both options are set together.  I wanted to do this, but I'm not familiar with the Puppet code (nor Ruby), so I based my changes on similar functionality I found in other types.  I tried to find a similar check in another type, but failed.  Could you perhaps point me to an example of how this is usually implemented?