(#23374) Reimplemented ports package provider

What's inside:

  - package resource extended with build_options,
  - install_options and uninstall_options implemented for freebsd ports,
  - port options implemented (this corresponds to make config stage),
  - portversion (instead of pkg_info) used to list installed packages,
  - portorigins used to internally identify freebsd ports/packages,
  - fixed several issues, that the old ports provider suffered from

It should also be quite easy to adapt it to be compatible with pkgng.
fixed specs
handle also packages which have no port or origin at the moment
excluded specs imported from ptomulik-vash project

About 3000 specs are currently excluded, because their number was
killing for travis-ci.org. To load/run these test currently one has to
set one of the following environment variables:

- PUPPET_TEST_VASH, or
- PUPPET_TEST_ALL

for example:

        PUPPET_TEST_VASH=1 bundle exec rspec spec/unit/util/vash
fixed prefetch() to pickup unique ports