(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.
(maint) Use git mirrors for puppet/hiera/facter installation

The git server and fork used to construct git urls for installation
projects via beaker was previously hard set to be github.com and
puppetlabs.  While we continue to default to these values, this commit
allows them to be set globally or per installed project via environment
variables so that we can take advantage of internal and local git
mirrors and daemons.
Merge pull request #2428 from jpartlow/maint/stable/acceptance-gitmirror

(maint) Use git mirrors for puppet/hiera/facter installation
Merge branch 'stable'

* stable:
  (maint) Use git mirrors for puppet/hiera/facter installation
Merge pull request #2331 from ticket/master/PUP-1587-catch-empty-cron-entries

(PUP-1587) crontab: make sure that invalid crontabs aren't written out
(PUP-1586) remove obsolete unit test
(PUP-1586) allow managing existing cronjobs without caring for command

Signed-off-by: Charlie Sharpsteen <Charlie Sharpsteen chuck@puppetlabs.com>
(maint) Update required params when creating cron jobs

The cron type only requires `command` and a schedule component _when creating
jobs_. `user` is not strictly required as a default will be used.

When managing existing jobs, one only needs to provide the properties to manage
and the namevar.
Merge branch 'master' of https://github.com/puppetlabs/puppet