Fix creation of non-empty FreeBSD groups

When Chef creates a new FreeBSD group, the `pw groupadd` system command is
invoked. If the group is to have members at the time it is created,
prior to this change Chef would try to specify the new members with the `-m`
option. Unfortunately, `pw groupadd` has no `-m` option: one is supposed
to use `-M` instead. See the following excerpt from the `pw` man page:

pw [-V etcdir] groupadd [group|gid] [-C config] [-q] [-n group] [-g gid]
  [-M members] [-o] [-h fd | -H fd] [-N] [-P] [-Y]
pw [-V etcdir] groupdel [group|gid] [-n name] [-g gid] [-Y]
pw [-V etcdir] groupmod [group|gid] [-C config] [-q] [-n name] [-g gid]
  [-l name] [-M members] [-m newmembers] [-d oldmembers] [-h fd | -H fd]
  [-N] [-P] [-Y]

http://www.freebsd.org/cgi/man.cgi?query=pw&apropos=0&sektion=0&manpath=FreeBSD+9.3-RELEASE&arch=default&format=html

This commit lets Chef use `pw groupadd -M`.
Check local repository as well as remote when looking up the currently installed packages
Break get_current_version into its own function.

Also add spec to check that the install action doesn't do an upgrade.
Fix a typo and remove a couple unused variables
Don't throw an error if local package isn't installed.

shell_out! will throw an exception if the return code is none 0.  If a
local package isn't installed we would expect a non 0 return code and
that is OK so use shell_out instead of shell_out!
Fixes the "cron" resource handling of special strings (e.g. @reboot, @yearly)
Update cron resource spec to ensure duplicate entries are not created
Changelog updates for contributions

Closes #1708
Closes #1703
Closes #1698