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.
Do we also need to pull in `hive_metastore.thrift`?