Avoid call_user_func_array in query method

Well, my question was not about casting to an array: why do we check for `is_string`?
Maybe because we try keep some sort of compatibility with [PDO::query](http://php.net/manual/pdo.query.php), (where the second parameter is an integer)?

BTW, if this is the reason, it seems to me that this may lead to big problems: if we keep such approach `$db->query($sql, 1)` and `$db->query($sql, '1')` would lead to completely different results...