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.
Fix upstart provider so parameters work correctly
CHEF-5265: ensure service_name isn't clobbered by parameters
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.
Fixed specs for Chef::Role.from_disk

Specs were broken because of rebasing the glob_roles
patch onto the current master. Also removed an
exception raise I'd accidentally left in.
Merge branch 'glob_roles' of github.com:bensomers/chef into glob_roles

Conflicts:
	lib/chef/role.rb
	spec/unit/role_spec.rb
removed Chef::Role.from_disk 'force' option

Option was unused and did not work in any case.
Delete accidental unused line in spec file
[trivial] typo

* misspelled privileges.
Merge pull request #1497 from atomic-penguin/privileges-typo

[trivial] typo
Finalize CONTRIBUTING.md document.
Update the expired cert for specs.
Merge pull request #759 from bensomers/glob_roles

[CHEF-4193] Enabling storage of roles in subdirectories
Merge pull request #1498 from opscode/sersut/cert-update

Update the expired cert for specs.
Merge pull request #1418 from tarrall/CHEF-5265

CHEF-5265 - upstart service not working correctly when called with parameters
update for merges
CHEF-5287: Use IsWow64Process instead of ENV hash to determine 32-bit process on 64-bit OS
Fix undefined Windows constants on non-Windows platforms