Basic restructure toward codegening partitioned HJ and AGG

Breaking the old HashTable class to a new HashTable class that contains the data
(buckets, nodes) and a HashTableCtx class that can be used as a control block,
containing the logic and the hashing-related functionality. This separation allows
having a single HashTableCtx per node (or per thread) and multiple HashTable containing
Partitions; or (with little effort) having multiple threads operating on the same
HashTable. With this change it is not longer needed to have a dummy table only for
hashing the rows.

Modified PHJ and PAGG to use the new classes. Kept the old HashTable class (and files)
for the baseline hash-joins to work.

Also, removing a few compiler warnings shown when compiled for release.

Change-Id: I5fb545e36a37980c2d8f1d578086f9e415068dab
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/4053
Reviewed-by: Ippokratis Pandis <ipandis@cloudera.com>
Tested-by: jenkins