Chef 3356

This allow chef-solo to set the chef environment from the node JSON definition (previously it ignored the "chef_environment" attribute in chef-solo).

Node JSON:

```
{
	"run_list": ["role[base]", 
	               "role[app]"
	"chef_environment": "_default"
}
```

When provisioning an environment we have a a shell script replace `"chef_environment": "_default"` with the actual environment, and then call chef-solo using the new fully resolved node JSON definition. This could also be done using ERB template probably.

e.g. when being provisioned in our local environment it would end up as:
```
{
	"run_list": ["role[base]", 
	               "role[app]"
	"chef_environment": "local"
}
```

Then in our roles.rb we can have it run different recipes depending on the chef_environment:
```
base_run_list = [
  "protobuf",
  "zmq"
]

env_run_lists(
  "_default" => base_run_list + ["recipe[app]"],
  "local" => base_run_list + ["recipe[app::local]",
              "recipe[app::create_database]"]
)
```