as_pandas failed when the resultset has 0 rows.

This also avoids needing to construct temporary dictionaries for every row, speeding up dataframe creation
Merge pull request #12 from mariusvniekerk/master

as_pandas fails when the resultset has 0 rows. Change to `pd.DataFrame.from_records`
Implement Beeswax functionality in impyla

Abstract out Connection and Cursor to have subclasses for HiveServer2
and Beeswax. User can specify the type of connection through the added
protocol parameter in connect.

HiveServer 2 also supports retrieving summary and profile.
Merge pull request #14 from ayousufi/impyla_beeswax

Implement Beeswax functionality in impyla
Major reorg of files after beeswax addition
Merge pull request #15 from laserson/beeswax

Major reorg of files after beeswax addition
Fix errors in Beeswax DBAPI2.0 compliant tests

Also resolved issue with configuration error in Beeswax dbapi.

The Beeswax DBAPI2.0 compliant tests now only return one failure
regarding NULL values in Beeswax not being returned as None.

Beeswax now includes types in the cursor's description.

Also, summary does work. Maybe the following should be included in the
docs: get_summary() can only be called after the operation is closed,
which execute() does not do for operations which result sets, which are
operations that have summaries.

The following is how to use summary:
    ...
    cursor.execute('select 1')
    either: cursor.close_operation() or cursor.fetchall() (which closes the operation)
    summary = cursor.get_summary()
    output = []
    cursor.build_summary_table(summary, output)
    // output now contains the formatted summary table
Minor indentation fix
Merge pull request #19 from ayousufi/beeswax

Beeswax fixes
Additional HS2 cleanup post beeswax integration
Merge pull request #16 from laserson/beeswax

Additional HS2 cleanup post beeswax integration
Improved error message on dbapi tests