Fix service resource on FreeBSD

The command:
puppet resource service puppet enable=true
will wrongly append to rc.conf:
puppet_enable_enable="YES"
What should be appended is:
puppet_enable="YES"
The regexp /(.*)(_enable)?=(.*)/ is wrong because the first (.*) consumes the _enable, which is then used as the rcvar_name.
Update freebsd_spec.rb
Send the :links option to the file server

Previously, the server was never asked to follow links when 'links =>
follow' was used, so the server always provided the metadata for the
link itself. With this patch, the server correctly follows the link
server-side and the client can apply the catalog correctly.
(#7680) Update tests for changed behaviour after bugfix

A number of tests were broken before the bugfix:
* incorrectly checking the file mode (missing .should)
* operating on a non-existent source symlink

Enabled all of the #10315 tests which now pass, some of which needed
editing due to the expected behaviour now being different for
links => follow.
Update Puppet::FileServing::Metadata tests

Provide a stub for resource[:links] => :manage
Expect :find to be called with :links => :manage
(#7680) Add acceptance test for file links => follow
Merge branch 'pull-1529'

This closes GH-1529
Merge pull request #1527 from robertomulabi/patch-1

Fix service resource on FreeBSD
Find correct service name in FreeBSD rc.conf

If you have the following two lines in /etc/rc.conf:
openntpd_enable="NO"
ntpd_enable="NO"
And run the command:
puppet resource service ntpd enable=true
Both services will be enabled, and rc.conf will now have:
openntpd_enable="YES"
ntpd_enable="YES"
What should have been written is:
openntpd_enable="NO"
ntpd_enable="YES"
The regexp /(#{rcvar}(_enable)?)=\"?(YES|NO)\"?/ should be anchored.
Update freebsd_spec.rb
Merge pull request #1530 from robertomulabi/patch-1

Find correct service name in FreeBSD rc.conf
(#19716) Document handling of duplicate cron jobs

Prior to this commit the documentation claimed that if a user specified a
`cron` resources that exactly duplicated an existing unnamed entry in the
crontab then Puppet would attach a name to that entry and start managing it.

`cron` hasn't worked this way since at least 0.22.2.

Current behavior is: Puppet will remove all crontab entries duplicated by a `cron`
resource with `ensure => absent`. Puppet will preserve all entries duplicated
by a `cron` resource with `ensure => present` and treat the resource as a noop.

Mix the two cases and undefined behavior results.