Suppress misleading warn. in openbsd provider

I have observed that `pkginfo` command used as `listcmd` by `ports`
package provider sometimes outputs extra messages to stdout (the message
starts with `Updating the pkgdb`). This causes puppet to issue its own
warning as the line obtained from `listcmd` is not a valid package name.

This patch suppresses this spurious message.
Merge pull request #2051 from ptomulik/fix/package_openbsd_spurious_warning

Suppress misleading warn. in openbsd provider
(PUP-1150) Fix race condition in Puppet::Util::Lockfile.

Before this commit, Puppet::Util::Lockfile.lock called the locked?
method before opening the @lockfile for write. Checking that the file
doesn't exist and creating the file were not an atomic operation, which
allowed two processes to detect that the file didn't exist and open it
for write simultaneously.

This commit adds and used Puppet::FileSystem::exclusive_create wrapper
that sets the following options:

 * File:CREAT - Creates the file if it doesn't exist.
 * File:EXCL - Fails if the file does exist.
 * File:WRONLY - Opens the file for write only.

File:EXCL is the important option, callers will recieve an Exception if
the file exists, meaning another process has acquired the lock. If the
file doesn't exist it will be created atomically, so other another
caller cannot create the file in the gap.
Merge branch 'pr/2168'

* pr/2168:
  (PUP-1150) Fix race condition in Puppet::Util::Lockfile.

This closes GH-2168.
(PUP-1404) execpipe resets LANG and LC_ALL

Puppet::Util::Execution.execpipe always run commands with LANG="C" and
LC_ALL="C" to avoid localized output.
(PUP-1404) Add tests for execpipe locale setting
(PUP-1404) Merge execpipe locale settings (#2234).

This merges in the changes to execpipe to reset LANG and LC_ALL to C in
order to get default program output, and tests for the changes.
(PUP-1404) LC_ALL test to actually tests LC_ALL
(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.