Allow calling setAuth() with a blank password. Closes #239

This supports APIs such as Stripe which only require a username to authenticate.
Removing unnecessary CURLOPT_USERAGENT settings
Optimizing cURL multi transactions
Performance optimization to header object
Iterating over array instead of ArrayIterator in CurlHandle::factory
Refactoring setUserAgent and Removing Guzzle\Http\Utils Guzzle\Http\Client::setUserAgent() now simply accepts a string as input
Moving the request param curl.emit_io to curl options under emit_io
Only doing fwrite and rewind in stream factory when data is present
Optimizing Url constructor
Using replace rather than merge when parsing curl option settings
Cleaning up RequestFactory::create()
Fixing mistake made in d697838875c9acb439773e6394015db956ca3f51
Optimizing if statement when creating client requests
Shortening if statement and not using a clone of the query string when combining URLs
Allowing more return types from the Response::json() method. Closes #244
Response is only stale if the age is greater than the max-age
Reuse existing variable
Not stripping quotes from getEtag(). This prevents errors when getting Etags that contain things like W/"xyzzy"
Removing BC introduced in ff6738a02868deb0cd402ee2dcd9b5ddaa016564