Updated client to not clobber user agent when setting default headers

When using the `Guzzle\Http\client::setUserAgent` method, it is unsafe to use the `Guzzle\Http\client::setDefaultHeaders` afterwards, because is will clobber the user agent string you previously set. While `setUserAgent` currently sets the `User-Agent` header in the default headers, this is really just an implementation detail. This PR updates the `Client` class to hold the user agent string in a different instance variable, which gets merged into the default headers when creating the request, so it can't be clobbered beforehand.