CHEF-3356 Adds support for environments when running under chef-solo

Updating @goodwink's original pull request (https://github.com/opscode/chef/pull/359) for Chef issue (http://tickets.opscode.com/browse/CHEF-3356), from btm's initial review.

The ticket is now in the 'fix reviewed' state, although I missed the review itself, I think this branch was the one reviewed.

---
This code will add environment support when running under chef-solo without the previous requirement to load environments from a chef server via the api. Environments may now be configured locally using files in either json or ruby dsl in the configurable evironment_path directory.