Handle sections without text parameters

 * Allows interop with gems that throw custom exceptions without string messages.
ruby-shadow supports darwin+freebsd now

- comment in https://tickets.opscode.com/browse/CHEF-4402
fix mistype in converge for deploy#copy_cached_repo
CHEF-4927 - coerce group GID to string

To remain consistent with the way the user provider works, coerce both
new_resource and current_resource GIDs to strings for comparison. This
allows users to write their resources like:

group "zone" do
  gid 233
end

or

group "zone" do
  gid "233"
end

Without this change, every time Chef runs when a string GID is
specified, it will modify the group, which is not desirable.
[CHEF-4799] Handle non-dupable elements when duping attribute arrays
[CHEF-4946] Don't try to install ruby-shadow on cygwin
Bump the mixlib-shellout version to 1.3
OC-2192: change error message to suggest namespace collision between nodes and users
Merge pull request #1221 from opscode/CHEF-4963

CHEF-4963 - Mixlib-shellout library is incorrect for Chef 11.8.2
Merge pull request #1222 from opscode/OC-2192

OC-2192: change error message to suggest namespace collision between nod...
CHEF-4725: Validate 'log_location' setting on log initialization

Previously, a Mixlib::Config setter method verified that 'log_location'
was set to a writeable file or a valid IO stream. Due to the way
Mixlib::Config handles `default` and `merge!`, this setter method would
not fire if the 'log_location' was left unconfigured or if it was set
on the command line, resulting in inconsistent error handling.

This commit moves the validation logic out of the configuration layer
and into the log initializion layer. This ensures that error handling is
consistent, regardless of where the 'log_location' setting is
configured. Validation logic is also simplified, relying on the
MonoLogger class to open and configure any necessary IO streams.
CHEF-4725: Disable buffering on all log streams

Centralize handling of log buffering to ensure it's always disabled.
Previously, an unconfigured 'log_location' setting would erroneously
fall back to a default STDOUT stream with output buffering enabled.
Fix indentation of rescue clause
Merge branch 'CHEF-4725'
Add indirection to allow switching policy builder implementations
Extract "expand node" policy builder to new file
Add Policyfile-based policy builder for chef-client

NB: This is experimental and a bit of a hack. There is no server-side
support, so interactions with the server are coded in a "compatibility
mode" using data bag items and Chef 11 style cookbook version APIs.

The Policyfile PolicyBuilder uses a single document from the server as
the authoritative cookbook version set and expanded run list. Enabling
it will disable support for environments and roles. In addition,
chef-solo and override run lists are currently unsupported, though they
could be supported in the future.
Allow policyfile feature to be enabled in config
Update error messaging in Policyfile policy builder
Fix incompatibilites between node expansion and policyfile