Fix for issue #467
Manage index table metadata when data data metadata changes: Drop index if indexed column dropped from data table, drop covered column if covered column dropped from table, add new data pk column to end of index pk
Fix padded char test by not canceling futures (which can end up closing the hconnection), fix range scan hint test by correcting query plan
Bug fixes for dropping index when indexed column dropped
Unit tests and fixes for dropping a covered column and adding a PK column to a data table
Optimize ORDER BY out when salted if order preserving, fix associated unit tests
Bug fix for forcing scan to run through skip scan
Fix for better primary key constraint error checking (#468)
Fixing check for invalid column reference in primary key constraint to take into account salting
Fix RVC extract node bug, fix duplicate column definition bug (#469)
Fixes for RVC optimization
Fixing handling of deletes in ApplyAndFilterDeletesFilter

It was causing an infinite loop when there were duplicate CFs added to the filter.
Further, it wasn't handling the delete/put ordering correctly, which later lead
to incorrect indexes being constructed in the tests.
Merge pull request #470 from jyates/fix-looping-repeat-columns

Fixing handling of deletes in ApplyAndFilterDeletesFilter
Show RVC in explain plan
Increase memory for junit test run, fix broken unit test
Tweaking explain plan range display for better readability
Fixing unit tests broken due to explain plan changes
Tweak parse to allow RVC in IN expressions
Cleanup up defaults + logging.

This resolves the issue of salted indexes. Essentially, HTables have default pools with unbounded
threads, but direct handoff of tasks via the queue. Therefore, the default of 1 thread meant
that batching updates in a multi-threaded environment (or even to multiple RS) would cause
a RejectedExecutionException. We up the value to Integer.MAX_VALUE by default, allowing us
to grow as we need.

This is not an ideal solution - it can quickly burst up to a large number of threads. What we
really want to do is set a max level of parallelization and then queue up any remaining tasks
(similar to what we are doing with the rest of the indexing pools).

Additionally, we support the standard HTable retry values in a "set if not set" style so
the user can override their settings. This means you have increased flexibility in how quickly
you want an index update to fail, making it more resilient to RS (particularly the one holding
-ROOT- and/or .META.) outage.
Tests for row value constructor optimization. Query more test for salted table using RVC construct. Optimizer tests for tables with secondary indexes and using RVC construct