Performance improvements: Alter table add partition and drop partition

    This patch improves the performance of the DDL queries
    "Alter table add partition" and "Alter table drop partition"
    as the number of partitions is scaled up.

    The issue was that every time a partition was added or dropped,
    the entire block metadata for that table was reloaded. This
    operation was highly expensive especially as the number
    of partitions became larger.

    This patch handles this by adding/dropping only the added/dropped
    partition's metadata to the hdfsTable (adding/dropping it to/from
    the internal partition list), and incrementally updating the
    corresponding data structures instead of refreshing them from scratch.

    The following are the time improvements observed.

    Number of partitions    Time taken to add/drop     Time to add/drop
    (existing)              a new partition (before)   a new partition (now)

                       1          1.02s                    1.02s
                      10          0.27s                    0.27s
                     100          0.14s                    0.14s
                     500          0.35s                    0.35s
                    1000          0.91s                    0.51s
                   10000          11.72s                   0.85s
                   20000          21.92s                   0.87s

Out of this total time (for the worst case), around 0.50s is spent in
adding and dropping the partition to the hive meta store and rest of the
time is spent in updating the catalog.

Change-Id: I359ab0af921543c0fdcb975c14b05f80f93fe803
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3291
Reviewed-by: Anusha Dasarakothapalli <anusha.dasarakothapalli@cloudera.com>
Tested-by: jenkins