Support for simultaneous LDAP and Kerberos authentication.

Prior to this work, the impalad could either authenticate with
Kerberos, or authenticate with LDAP.  This fixes that so that both can
co-exist in the same daemon.  Prior code had both a
KerberosAuthProvider and an LdapAuthProvider; this is refactored into
a single SaslAuthProvider that potentially contains both LDAP and
Kerberos.

The terminology of "client facing" and "server facing" has been
replaced with "external" and "internal".  External is for clients like
the impala shell, odbc, jdbc, etc.  Internal is for daemon <-> daemon
communication.

The notion of the "auxprop" plugin is removed, as that was dead code.

The Thrift code is enhanced to pass the Realm information from the
SaslAuthProvider down to the underlying SASL library.

Change-Id: I0a0b968a107c0b25610ca37295c3fee345ecdd6d
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4051
Reviewed-by: Michael Yoder <myoder@cloudera.com>
Tested-by: jenkins
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4409
PHJ: remove maintaining tuple row ptrs.

The level of indirection of TupleRow* (which are just a list of Tuple*) is not
helpful. This memory is a waste and additional logic would have to be added to
ensure that it triggers spilling. Instead, we store an offset into the tuple stream
(which is always 8 bytes and already part of the hash table structure).

Change-Id: I89eb9474746a39ba1b0543aafabdc4a8ddccf88b
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4321
Tested-by: jenkins
Reviewed-by: Nong Li <nong@cloudera.com>
PHJ: Fix block management when spilling.

The previous code did not handle well the case where the spilling happens when
building the hash table (i.e. partitioning the build rows fit). This caused the
probe partition to be starved causing queries that should be able to run to fail
with a not enough buffers error.

Change-Id: I3a9a84e8800a72ed3ce6f5ab7ff03bc2d6eb7ad8
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4403
Reviewed-by: Nong Li <nong@cloudera.com>
Tested-by: Nong Li <nong@cloudera.com>
Ignore invalid query options when opening an HS2 session

The CDH5.2.0 JDBC driver tries to set a database with a query
option. Doing so would fail the whole session open call which returned
an error if there was any problem with the query options. This patch
changes that to be more forgiving - incorrect query options would still
be logged.

Despite being found on CDH5, this is good for CDH4 as well.

Change-Id: Iaeef06238cc7994af00cdcfe7401528cdc242a30
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4412
Tested-by: jenkins
Reviewed-by: Henry Robinson <henry@cloudera.com>
Null aware left anti join backend implementation.

Change-Id: I612452d980eb749da9c638afe9e8c81c86c9dc5c
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4406
Tested-by: jenkins
Reviewed-by: Nong Li <nong@cloudera.com>