Support multiple parameters with the same name in requests and responses

Changes query string from a hash to a list. Changes the JSON data structure for passing in parameters.

Where previously ```data``` was an object hash, it is now an array:

```js
oauth.request({
    method: 'POST',
    url: endpoint + '/oauth/access_token',
    data: [
        [ 'xauth_username' , username ],
        [ 'xauth_password' , password ],
        [ 'xauth_mode'     , 'client_auth' ]
    ],
    success: handlexAuthSuccess,
    failure: handleFailure
});
```