pd.read_sql throws TypeError
Trying to run a postgres query through `pd.read_sql`  which throws a vexing `TypeError: 'dict' object does not support indexing`
Pandas version: 0.18.1

```
pd.read_sql('select extract(year from creationdate) as Year, count(id) as Count, \'c\' as Language from posts where "tags" like \'%<c>%\' group by year;', engine)
```

#### Expected Output

#### 
 year | count | language
------+-------+----------
 2008 |  1175 | C
 2009 |  6812 | C
 2010 | 15347 | C
 2011 | 22726 | C
 2012 | 31295 | C
 2013 | 41057 | C
 2014 | 42285 | C
 2015 | 40960 | C
 2016 | 24481 | C

<details>

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-189-c4bd24872e35> in <module>()
      1 # pd.read_sql(pl_count_by_yr.format(tag).strip(), engine, chunksize=1000)
----> 2 pd.read_sql('select extract(year from creationdate) as Year, count(id) as Count, \'c\' as Language from posts where "tags" like \'%<c>%\' group by year;', engine)

c:\Anaconda\lib\site-packages\pandas\io\sql.pyc in read_sql(sql, con, index_col, coerce_float, params, parse_dates, columns, chunksize)
    513             sql, index_col=index_col, params=params,
    514             coerce_float=coerce_float, parse_dates=parse_dates,
--> 515             chunksize=chunksize)
    516 
    517 

c:\Anaconda\lib\site-packages\pandas\io\sql.pyc in read_query(self, sql, index_col, coerce_float, parse_dates, params, chunksize)
   1188         args = _convert_params(sql, params)
   1189 
-> 1190         result = self.execute(*args)
   1191         columns = result.keys()
   1192 

c:\Anaconda\lib\site-packages\pandas\io\sql.pyc in execute(self, *args, **kwargs)
   1079     def execute(self, *args, **kwargs):
   1080         """Simple passthrough to SQLAlchemy connectable"""
-> 1081         return self.connectable.execute(*args, **kwargs)
   1082 
   1083     def read_table(self, table_name, index_col=None, coerce_float=True,

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in execute(self, statement, *multiparams, **params)
   1989 
   1990         connection = self.contextual_connect(close_with_result=True)
-> 1991         return connection.execute(statement, *multiparams, **params)
   1992 
   1993     def scalar(self, statement, *multiparams, **params):

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in execute(self, object, *multiparams, **params)
    904         """
    905         if isinstance(object, util.string_types[0]):
--> 906             return self._execute_text(object, multiparams, params)
    907         try:
    908             meth = object._execute_on_connection

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in _execute_text(self, statement, multiparams, params)
   1052             statement,
   1053             parameters,
-> 1054             statement, parameters
   1055         )
   1056         if self._has_events or self.engine._has_events:

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in _execute_context(self, dialect, constructor, statement, parameters, *args)
   1144                 parameters,
   1145                 cursor,
-> 1146                 context)
   1147 
   1148         if self._has_events or self.engine._has_events:

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in _handle_dbapi_exception(self, e, statement, parameters, cursor, context)
   1342                 )
   1343             else:
-> 1344                 util.reraise(*exc_info)
   1345 
   1346         finally:

c:\Anaconda\lib\site-packages\sqlalchemy\engine\base.pyc in _execute_context(self, dialect, constructor, statement, parameters, *args)
   1137                         statement,
   1138                         parameters,
-> 1139                         context)
   1140         except Exception as e:
   1141             self._handle_dbapi_exception(

c:\Anaconda\lib\site-packages\sqlalchemy\engine\default.pyc in do_execute(self, cursor, statement, parameters, context)
    448 
    449     def do_execute(self, cursor, statement, parameters, context=None):
--> 450         cursor.execute(statement, parameters)
    451 
    452     def do_execute_no_params(self, cursor, statement, context=None):

TypeError: 'dict' object does not support indexing

</details>
