(pup-1369) Add package_settings property for package

This changeset adds the package_settings property to "package" type. It's
intended to be used mainly with FreeBSD ports to control port options on
installed packages (the options normally set with make config).

The sole implementation of package_settings is delegated to providers. This
changeset only introduces package_settings feature and property to package
type (this initially defines an interface between package type and
provider used to handle package_settings).
Merge pull request #2264 from kylog/issue/pup-1369/add-package-settings-property

(pup-1369) Add package_settings property for package
Don't run LANG/LC_ALL tests on windows
(PUP-1404) Don't swallow execpipe tests on windows
(PUP-1432) Add V2 API structured errors.

This commit introduces error responses, a JSON object as described
in the api documentation (with associated schema).

It introduces the Puppet::Network::HTTP::Issues module, which collects
the known issue_kind values, in order to ensure consistency and provide
ability to yardoc them.

It adds two HTTPError subclasses for future use: an HTTPBadRequestError
(400 response), and an HTTPServerError class. The HTTPServerError
allows the API to provide more information about an unexpected error
than simply letting the error bubble up to be caught by the generic
HTTP handler.
(PUP-1432) Move JSON error ser8n to error classes

Rather than serializing in the generic HTTP handler.
(PUP-1432) Fix error JSON schema

The type of the items in the stacktrace array was not correctly
specified.
(PUP-1432) Add error spec that tests serialization