CHEF-4443 - Always save the correct run list

As per Dan's suggestions, use a primary run_list and an override, and
take care to ensure that the correct one is used to save the node.
aix: bootstrap template for aix.
aix: bootstrap template for aix.
Merge branch 'kd/aix-bootstrap' of https://github.com/ClogenyTechnologies/chef into kd/aix-bootstrap
AIX: implement review comments, name as chef-aix and use ksh -c
aix: bootstrap template for aix.
AIX: implement review comments, name as chef-aix and use ksh -c
Merge branch 'kd/aix-bootstrap' of https://github.com/ClogenyTechnologies/chef into kd/aix-bootstrap
CHEF-4643 Add cookbook versions to chef-client INFO and DEBUG logs
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
obvious fix
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
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