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.
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
Merge pull request #759 from bensomers/glob_roles

[CHEF-4193] Enabling storage of roles in subdirectories