Avoid call_user_func_array in query method

Ya I agree that this seems odd, and I suspect your hunch on the PDO::query compatibility is correct but can't say for sure without doing some additional testing.

That said the only reason I took issue with this was that if `$args[1]` is a string in case 2, then it would fail to be able to be passed into the `$this->executeQuery()` function because the 2nd argument MUST be an array. Even the current logic there is broken. We should at the very least cast $arg[1] to an array in case 2. 

```
    public function executeQuery($query, array $params = array(), $types = array(), QueryCacheProfile $qcp = null)
```