(PUP-3618) Include pkgng provider for FreeBSD

To improve the default state of Puppet on FreeBSD systems, !his work
moves the pkgng provider into core.  Previously, users of the provider
would need to install from the forge module zleslie/pkgng.
I think what @adrienthebo is referring to is that we set `@pkg_query` to cache the query result, but since it's only called once from `instances`, do we need to cache it?  Same goes for `@version_list` in `get_version_list`.