(maint) Simplify the CA use of the autosign setting

Commit bca628dc adds proper conversion of autosign input values to
booleans, but Puppet::SSL::CertificateAuthority was still trying to
handle string values. This commit simplifies the checking logic and lets
the autosign setting handle data normalization.
(#PUP-1046) Add spec test for skeleton for generated modules

This patch adds a simple spec test to ensure that by including the
class with default values for all the parameters, that the class is
contained within the catalog.
(#FORGE-38) Add Rakefile to skeleton for generated modules

This patch adds a simple Rakefile that provides rake tasks `lint` for
puppet-lint, `validate` for validation of manifests, templates, and ruby
files, and the tasks provided by the puppetlabs_spec_helper.
Clarified `pattern` parameter for Service type (DOCUMENT-1)
Clarified the use of slashes around RegEx for `pattern` attribute
(PUP-1586) allow managing existing cronjobs without caring for command

When the catalog contains a cron resource that does not specify a value
for the command property, the transaction would fail with the cryptic
error message 'no command, somehow' under certain conditions.

This error is spurious. Generally, it's quite allowable to manage a subset
of cron properties that does not include the command. Fixed by removing
the devfail invocation. The command property is now handled just like
the 'special' property.
(PUP-1586) remove obsolete unit test

The cron type unit test titled "it should require a command when adding
a new entry" did not quite do what it said. What it actually tested was
that the type would raise an exception when an empty command should-value
was accessed.

This can be safely removed, as PUP-1587 will implement a more sensible
protection against the creation of cronjobs that lack a command, including
a working integration test.
(PUP-1587) crontab: make sure that invalid crontabs aren't written out

It is permissible to manage cron entries and not manage the command
property. However, if the entry doesn't exist on the target system yet,
puppet should not try to create it.

In other words, a cron resource without a should value for the command
property can only be synced to a valid state if the corresponding resource
on the target system has a valid command value already.

cron { "foo": minute => 1 }

is alright with an existing crontab of

 # Puppet Name: foo
 * * * * * /some/command

but not with a crontab not yet containing the entry named 'foo'.

This change prevents the sync operation in the error scenario.
Merge remote-tracking branch 'upstream/master' into stable

Prepare for 3.5.0-rc1

* upstream/master: (800 commits)
  (PUP-1085) Add and fix pacman provider tests
  (PUP-1905) Split modulepath when supplied as an override from CLI
  (PUP-1897) Improve test of EPP trim, and expr after params
  (PUP-1897) Fix failing lexer2 test, and update with additional tests
  (PUP-1897) Change epp lexer/grammar to only accept single rendered expr
  (PUP-979) Fix unparenthesized calls with hash to not give strange error
  (PUP-1897) Allow EPP render expression to render a block
  (maint) Remove dead-code check if ImportExpression is r-value
  (maint) Remove dead code checking non existing ImportExpression
  (PUP-1898) Fix reference to ArgumentException
  (PUP-1898) Fix broken exception raising when inline_epp gets non string
  (PUP-1895) Change <%( )%> to <%| |%> for EPP parameters
  (maint) Fix parallel:spec rake task when dependencies are not present.
  (Maint) Remove some duplication in tests
  (PUP-1885) Stringify ignores for file serving
  (PUP-1563) Don't recurse when dependencies are empty
  (PUP-1563) resolve_install_conflicts excessively recurses
  (maint) Add rake task for parallelizing specs.
  (PUP-30) Fix problem with changed behavior in StringScanner.scan_until
  (PUP-30) Add tests of inline_epp function
  ...
(PUP-1879) Clear gem path cache when loading library features

Installing gems during a Puppet run should be picked up by features using the
'libs' option.  However gems are installed into separate directories, so
rubygems maintains an in-memory directory cache, which needs invalidating
when attempting to load a library after installation.
(maint) Update Debian dependencies for new debian-testing packages

In the Debian 'testing' release, the libopenssl-ruby virtual package has been
replaced with the libopenssl-ruby1.9.1 virtual package. The control
file for Debian packages has been updated to reflect this.
Merge pull request #2433 from mckern/stable

(maint) Update Debian dependencies for new debian-testing packages
(packaging) Update PUPPETVERSION to 3.5.0-rc1
(PUP-1938) Remove Debian service provider default on Ubuntu

As of Ubuntu 8.04 Ubuntu uses Upstart instead of the regular Debian init
scripts, and legacy sysvinit commands have been updated to use Upstart
as well. Because the legacy commands provide compatibility and the
Upstart provider can fall back to Debian init scripts if needed, we no
longer need to set the debian service provider as default on Ubuntu.
Merge branch 'pull-2276'

This closes GH-2276
Merge pull request #2294 from holguinj/servicedocs

Clarified `pattern` parameter for Service type (DOCUMENT-1)
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (maint) Update Debian dependencies for new debian-testing packages
(PUP-1954) use attr_accessor instead of attr

A one-line change that fixes a deprecation warning on certain versions
of ruby, including jruby.

Stackoverflow says this code is equivalent:

http://stackoverflow.com/questions/13958061/attr-vs-attr-accessor
(PUP-1769) yum provider takes install_options

The yum provider now supports install_options.
(PUP-1769) Changing the has_feature to a one-liner