Use request QueryString to compose OAuth params

The Oauth "string to sign" includes the query string parameters,
together with the OAuth parameters. Guzzle uses a QueryString instance
to combine the two. However, it was incorrectly using the default
aggregator, instead of the actual aggregator used by the QueryString
that's part of the request.

This change uses the QueryString from the request to serialise the
parameters to be signed. This will affect the aggregation of the Oauth
parameters as well -- however aggregation should never occur for these
because there is only one value for each key.
Sort using using lexicographical byte value ordering

See 9.1.1 in http://oauth.net/core/1.0/
> Parameters are sorted by name, using lexicographical byte value ordering.

This is already fixed in Guzzle4, but a patch to Guzzle3 would be appreciated, as I encountered this bug, in my case when posting an array with more then 9 items.
Also see https://github.com/guzzle/guzzle/issues/558 and #4