Client name should not be coupled to node name.

I was recently trying to use a specific client name and key and was failing miserably. It turns out that client key and client name are not set properly during chef-client runs and instead are coupled to the node name. This decouples the two if the user defines `client_name` in their `client.rb` file.
It's probably best not to override the argument passed to this class, e.g. something like this:

```
if Chef::Config[:client_name]
  if client_name == Chef::Config[:node_name]
    client_name = Chef::Config[:client_name]
  end
end
```

Also, we would want unit tests added to spec/unit/rest_spec.rb and something for spec/unit/config_spec.rb.