Enabling storage of roles in subdirectories

Storing roles in subdirectories is already effectively enabled
for Hosted Chef, as the directory structure gets flattened when
they are uploaded. But it is not currently possible with Chef-Solo;
one has to flatten the directory manually before running Chef-Solo.
This patch changes that behavior, and enables Chef-Solo with roles
in subdirectories.
Added duplicate role detection for Role.from_disk

Now Role.from_disk raises an error when it detects two roles
of the same type (.rb or .json) exist anywhere in the roles directory
or subdirectories.
[CHEF-4298] dependencies in metadata.rb require a space
[CHEF-4298] some tests added for "dependencies in metadata.rb require a space"
[CHEF-4298] send the version constraint correctly formatted for chef server
[CHEF-4298] some tests fixed
[CHEF-4298] tests improved to test version transformation on dependencies
[CHEF-4298] "trasnformation" typo in tests
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.
remove leading underscore
aix: bootstrap template for aix.
Unit test for CHEF-4562
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
Add Code Climate badge to README
CHEF-4643 Add cookbook versions to chef-client INFO and DEBUG logs