Resolving Duplicate Column Names

The JDBC spec says when you have duplicate columns names, the first one should be returned but this behavior isn't useful to us. What we really need is the ability to resolve those ambiguous cases in the client code.

I propose adding an additional string  to the columnNameIndexMap that would be in the format of tablename.column similar to how you would reference the columns in SQL.

I've added a test case for this use case that shows that it works and doesn't affect any existing test cases.
... and what if I have a field/alias that conflicts with this?

```
CREATE TABLE dup AS SELECT 1 AS id;

SELECT 
  dup.id,
  dup2.id,
  dup.id AS "dup.id",
  dup2.id AS "dup2.id"
FROM dup, dup dup2;
```

You might argue "well, don't do that then". That might be reasonable, but I'd like to see it considered. Because pretty much any text is a legal identifier for a column name, or for an alias, you cannot ensure that there is no conflict between your synthetic entries and a "real" identifier.

Also, what performance impact does this change have for wide columns?