Fixed bug where http_build_query encoding would remove parts of query strings

So trying this code:
```
$zendesk = new ZendeskAPI('acquia', $zendesk_creds['email']);
$zendesk->setAuth('token', $zendesk_creds['token']);
$query = 'status<solved+type:ticket';
$params = array(
  'query' => $query
);
$search = $zendesk->search($params);
```
throws this error:
```
Invalid search: Invalid status type: solved+type:ticket
```
It looks like the http_build_query call in HTTP::send is encoding the query in a way the API isn't expecting. 

I've added code to check if $json is an array in HTTP::send, and only in that case will http_build_query be called. This allows functions that call HTTP::send encode the GET params themselves, which I used to fix the issue with Search::performSearch.

It should be noted that the actual query I'm making is quite long, and this is the only way I've gotten it to work with the API.

Please let me know if anything needs to be changed in the PR.