package: fail on Solaris if `$package_name` undef

The comments say this must be set on that OS so the failure makes that
explicit.
package/redhat: don't ensure the yum repo file

The file wouldn't necessarily be at that location. According to Puppet it's installed in the first matching location:
* Custom directory specified by the ‘/etc/yum.conf’ reposdir property
* ‘/etc/yum/repos.d’
* ‘/etc/yum.repos.d’
* If none of these locations match, section will be created in ‘/etc/yum.conf’
package/debian: use more puppetlabs-apt features

* puppetlabs-apt does an APT update after every apt::source is added, so no
  need to do it again in this module.
* Use the 'required_packages' feature of apt::source instead of
  ensure_resources
package: mainline package support on redhat/debian

Closes #450
Closes #456
Closes #518
package/debian: install ca-certificates for passenger

Required per the Passenger install guide
debian/package: warn on incorrect package name w/ Passenger

According to Passenger docs:

"You should install nginx-extras even if you have already installed an Nginx package from the
official Debian/Ubuntu repository. This is because the Nginx binary that our packages supply
is compiled with the Passenger module."