(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.
Indeed I used the `def should` because it appeared in the `recipient` parameter.  I now tried to remove it, but one of the tests I created now fails.
```
$ bundle exec rake spec TEST=spec/unit/type/mailalias_spec.rb
rspec spec/unit/type/mailalias_spec.rb
Run options: exclude {:broken=>true, :benchmark=>true}
...F.

Failures:

  1) Puppet::Type::Mailalias should try and set the included file when it does the sync
     Failure/Error: file_resource.property(:file).sync
     Mocha::ExpectationError:
       unexpected invocation: file.set('/tmp/afile')
       unsatisfied expectations:
       - expected exactly once, not yet invoked: file.set(['/tmp/afile'])
       satisfied expectations:
       - allowed any number of times, not yet invoked: Signal.trap(any_parameters)
     # ./lib/puppet/property.rb:537:in `sync'
     # ./spec/unit/type/mailalias_spec.rb:33:in `block (2 levels) in <top (required)>'

Finished in 0.0174 seconds
5 examples, 1 failure

Failed examples:

rspec ./spec/unit/type/mailalias_spec.rb:30 # Puppet::Type::Mailalias should try and set the included file when it does the sync

```