Queries with a semicolon at the end fail silently

This is confusing for the user as the error message from Tableau is not meaningful. This PR fails queries with ; in them.
Semicolon is a standard way of terminating queries (IIRC it is part of ANSI SQL-92). The reason we use indexOf instead of looking only at the end of the query string is when the user enters a query to Tableau that ends with a semicolon, the query that Tableau generates and passes to the ODBC driver wraps the user's query as a subquery. So as a result semicolon is no longer at the end in the generated query. Here is a query Tableau sends to the driver:

```
SELECT *
FROM (
    select a, b from my_table limit 5;
) "Custom_SQL_Query"
LIMIT 1 
```

Btw, when the above query fails the error doesn't result in an exception as you mention, instead Tableau crashes; seems like there is another bug in the driver.