Fixed leftover in flight queries caused by sqlalchemy.get_columns()

We need to call fetchall even when we have 0 rows
Merge pull request #24 from mariusvniekerk/sqlalchemy

Fixed leftover in flight queries caused by sqlalchemy.get_columns()
Keep query handle open after all results have been fetched

The problem with immediatly closing the handle is it makes fetching the
log impossible because the handle is no longer valid. The log messages
are generated as results are fetched, so there were 2 options: (1) cache
the log before closing the handle (2) keep the handle open. Option 2 is
much simplier so I went with that. The only downside is Impala resources
will likely be released later than before this change. Each cursor will
have one open handle, which will be closed when the cursor or connection
is closed.
Fix conversion of Timestamps and Decimals
Merge pull request #26 from caseyching/master

Type conversion bug fix and allow get_log of last fetch
Added ImpalaIdentifierPreparer to quote keywords; should fix #25
Checkpointing sketch for BigDataFrame
Initial cut of some BigDataFrame features (untested)

Includes the BDF object along with projection and row selection (i.e., pandas indexing)

Includes some SQL AST mostly modeled after Impala's front end SQL analyzer.

Also includes a bunch of commented out code from earlier sketches.  I just want to have these in the repo, and will shortly delete them.
Some cleanup
Mostly work on creating BDFs
Mainly added ImpalaContext and rudimentary join functionality
Added a few more pandas functions; started get_dummies
Nominally working BDF including GroupBy
Cleaned up clean-up code and added .count() and .collect()
Post-rebase fixes