(#12522) Adding purge option to apt class

Adds a purge option to the apt class to remove repositories
that are not managed by apt::source
Allow the use of the same key in multiple sources

Allow the use of the same key in multiple sources by including the name
of the source in the declaration for the exec which adds the key.
Add Modulefile to puppet-apt

Now that puppet-apt depends on puppetlabs-stdlib, an explicit
dependency is required. Modulefile was entirely missing. This commit
adds on.
Merge pull request #1 from rcoleman/ticket_12522_purge_option

Add Modulefile to puppet-apt
Merge pull request #20 from blkperl/ticket_12522_purge_option

(#12522) Adding purge option to apt class

Reviewed by Ryan Coleman
(#12526) Add ability to reverse apt { disable_keys => true }

The setting `disable_keys => true` parameter in the apt module creates
/etc/apt/apt.conf.d/99unauth with the contents
"APT::Get::AllowUnauthenticated 1;". Changing `disable_keys`
does not remove this file. This patch makes it so that
`disable_keys => false` will remove /etc/apt/apt.conf.d/99unauth.
Merge pull request #17 from blkperl/ticket_12526_apt_disable_keys

(#12526) Add ability to reverse apt { disable_keys => true }

Reviewed by Ryan Coleman (ryan@puppetlabs.com)
Test two sources with the same key
(#12430) Add tests for changes to apt module

This update reflects the changes to the apt module to allow duplicate keys. It
mostly involves tests for changes to the resource names to make them unique
between defines.
Merge branch 'allow-same-key'
Allow duplicate $required_packages

Previously, if more than one apt::source required the same packages to be
installed it would fail with a duplicate exec resource. This adds the name of
the source resource to the exec and gives the exec a name, moving it to a
command parameter for the exec.
Add tests for required_packages change

This updates the tests for the apt::source defined type to use the new name for
the exec resource and the new parameter for the same exec.
Check if python-software-properties is defined before attempting to define it.
Add test for python-software-properties package

This test adds the precondition that the python-software-packages package be
installed before the apt class is synced. If the defined function were not
called around the package resource, this test would fail with a duplicate
package resource error.
Fix source specs to test all key permutations

Previously only one should in each block was being evaluated. This moves each
should to its own block so that all values are tested. It also adds another set
of params so that all useful permutations of key, key_server, and key_content
are generated. It also replaces the previous ternary assignment for param_set
with a hash merge.
(#12522) Split purge option to spare sources.list

Prior to this commit, when using the purge option, unmanaged entries
in both /etc/apt/sources.list and sources.list.d would be purged.

This commit splits purge into purge_sources_list and purge_sources_list_d
which handle the purging of those items separately. Brief documentation on
each added to class documentation.
(#12522) Adjust spec test for splitting purge

Now that the purge parameter is split into two, the spec test needs
adjusted. This commit makes that adjustment.
Merge pull request #25 from rcoleman/ticket_12522_purge_option_take_2

(#12522) Split purge option to spare sources.list
Merge pull request #24 from haus/fix_source_key_tests

Fix source specs to test all key permutations

Reviewed and tested by Ryan Coleman (ryan@puppetlabs.com)
Merge pull request #22 from haus/unique_required_packages

Allow duplicate required_packages between sources

Reviewed and tested by Ryan Coleman (ryan@puppetlabs.com)