This function can be used in several ways to set the client's request
headers:
1. By providing two parameters: $name as the header to set (e.g. 'Host')
and $value as it's value (e.g. 'www.example.com').
2. By providing a single header string as the only parameter
e.g. 'Host: www.example.com'
3. By providing an array of headers as the first parameter
e.g. array('host' => 'www.example.com', 'x-foo: bar'). In This case
the function will call itself recursively for each array item.