KUDU-2671 check for duplicate columns in hash schema when adding range

This patch adds validation for range-specific hash schemas when
adding new range partitions.  Without this patch, invalid requests
to add range partitions with duplicate columns across dimensions
of the custom hash schema would be accepted, but tablets could not be
created, resulting in timed-out IsAlterTableDone() RPC.  The patch also
contains new test scenarios for both C++ and Java Kudu clients, making
sure the corresponding error is reported back to the client.  I verified
that the new test scenarios failed as expected if commenting out
the newly added hash schema validation code.

This patch also fixes a few typos in test scenarios from master-test.cc
since the new verification code exposed those mistakes.

Change-Id: Iefe6a97028ae12585ac5496ac8608448ffacd95e
Reviewed-on: http://gerrit.cloudera.org:8080/18728
Reviewed-by: Mahesh Reddy <mreddy@cloudera.com>
Tested-by: Alexey Serbin <alexey@apache.org>
Reviewed-by: Abhishek Chennaka <achennaka@cloudera.com>
Reviewed-by: Alexey Serbin <alexey@apache.org>
5 files changed