KUDU-2671 refactor PartitionSchema::CreatePartitions()

This patch refactors the code of the PartitionSchema::CreatePartitions()
method and the code around its invocations, addressing a few TODOs.
As a consequence, this patch fixes a bug in the CreateTable path: prior
to this patch, a client could submit a CreateTableRequestPB request such
that the order of ranges in CreateTableRequestPB::split_rows_range_bounds
and CreateTableRequestPB::partition_schema::custom_hash_schema_ranges
were different, and the result table would be created with wrong hash
schemas.

For example:

  requested:
    {{range_boundary_a0, range_boundary_a1}, hash_schema_a}
    {{range_boundary_b0, range_boundary_b1}, hash_schema_b}

  created:
    {{range_boundary_a0, range_boundary_a1}, hash_schema_b}
    {{range_boundary_b0, range_boundary_b1}, hash_schema_a}

I'm planning to add corresponding test scenario to catch the regressions
in a separate changelist for ease of reviewing and tracking the changes.

However, I updated the existing test scenarios affected by this change.

Change-Id: I5bac1f8ee349577e2f912530a28776415ed0a5b0
Reviewed-on: http://gerrit.cloudera.org:8080/18582
Tested-by: Alexey Serbin <alexey@apache.org>
Reviewed-by: Abhishek Chennaka <achennaka@cloudera.com>
Reviewed-by: Attila Bukor <abukor@apache.org>
11 files changed