MySQLdb driver returns tuple instead of list and Pandas isn't happy about it
The MySQLdb driver returns rows as tuples instead of lists and Pandas isn't happy about it:

> > > sql.read_frame("select token,status FROM purchases WHERE purchases.created_at > '2012-08-26 00:00:00' ", conn)
> > > Traceback (most recent call last):
> > >   File "<stdin>", line 1, in <module>
> > >   File "C:\Python27\lib\site-packages\pandas\io\sql.py", line 140, in read_frame
> > >     coerce_float=coerce_float)
> > >   File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 714, in from_records
> > >     coerce_float=coerce_float)
> > >   File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 4078, in _to_sdict
> > >     return _list_to_sdict(data, columns, coerce_float=coerce_float)
> > >   File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 4091, in _list_to_sdict
> > >     content = list(lib.to_object_array_tuples(data).T)
> > >   File "inference.pyx", line 511, in pandas._tseries.to_object_array_tuples (pandas\src\tseries.c:79688)
> > > TypeError: Argument 'rows' has incorrect type (expected list, got tuple)

I confirmed that Listifying the rows fixes the issue:

```
cursor, conn = connex.get_connex()
cursor.execute("""
    SELECT token,status
    FROM purchases
    WHERE purchases.created_at > '2012-08-26 00:00:00' """)

rows = cursor.fetchall()
lrows = []
for row in rows:
    lrows.append(list(row))

colnames = tuple([desc[0] for desc in cursor.description])
df = DataFrame(lrows,columns=colnames)  # this works
```

Also, calling the DataFrame constructor with the Tuple rows raises an error that isn't very informative:

`>>> df = DataFrame(rows,columns=colnames)`
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 337, in **init**
    raise PandasError('DataFrame constructor not properly called!')
pandas.core.common.PandasError: DataFrame constructor not properly called!
