Adding implementation of hash partitioning to DataStreamSender.

Changing DataStreamSender::Channel to get a backend client from the client cache rather
than opening and closing its own connection.
Only quote string values in Json metrics
HiveServer2

This patch implements the HiveServer2  API.

All of the HiveServer2 code is implemented in impala-hs2-server.cc. Beeswax
code is refactored to impala-beeswax-server.cc.

HiveServer2 has a few more metadata operations. These operations go through
impala-hs2-server to ddl-executor and then to FE. The logics are implemented in
fe/src/main/java/com/cloudera/impala/service/MetadataOp.java.

Because of the Thrift union issue, I have to modify the generated c++ file.
Therefore, all the HiveServer2 thrift generated c++ code are checked into
be/src/service/hiveserver2/. Once the thrift issue is resolved, I'll remove
these files.
Fix packaging failure by moving inline function GetQueryExecState to impala-server.h
IMPALA-30: Make Catalog Db and Table caches thread safe