Enabling HASH2 partitioning of salted tables

- In FileScan::preCodeGen(), make sure we add part key predicates in all
  3 cases, a) MDAM, b) with an existing search key, c) without a search key.
- Make sure we don’t do the HBase “constant keys” optimization when we have
  partitioning key predicates (HBaseAccess::preCodeGen()).
- Since the partition input values for a HASH2 function are actual hash
  values, the key predicate needs to call the Hash2Distrib function to
  compute the salt value
  (PartitioningFunction::createBetweenPartitioningKeyPredicates())
- When we replace an existing search key with a new one for the partitioning
  key predicates, try to include the existing predicates as well
  (TableHashPartitioningFunction::createSearchKey())

Change-Id: I092ae85653f320d1d26273a15da4e0ac6b0ae2bc
Merge "Enabling HASH2 partitioning of salted tables"