(PUP-1369) Package options property / ports provider

I've decided to split PR #2130 into smaller parts. This is one of them.

This PR implements enhanced 'ports' provider for package resource.

This code was originally developed as a separate puppet module
[ptomulik-packagex_portsx](https://github.com/ptomulik/puppet-packagex_portsx)
and you may find its documentation there.

The 'portsutil' functions are used by the new ports provider present in
PR #2130.