modifications to accept lowercase key property
Enabling batch support for indexes + bug fixes.

Now we correctly handle batches of updates - all updates for a given row are grouped into
a single Index Batch which is then processed by the usual update mechanisms.

Other Bug Fixes:
 - Wrong ordering in MutableIndexTest
 - Wasn't setting pending updates before cleanup
 - Adding debugging statements (and toString impls)
 - Removing ColumnFamilyIndexer since its a worse example than the CoveredColumn or Phoenix indexer
 - making stopped AtmoicBoolean in IndexWriter to help race conditions in stop/write
 -- might be cause of the concurrent modification issue when HRegion#doClose seen sometimes in the test.
Making index writing pluggable.

There are two main pluggability points: (1) writing the index and (2) handling failure.
This provides the option to mix and match choices. For instance, it would be pretty easy to
write an AsyncHBase writer and use the standad KillServerOnFailurePolicy to ensure that
the server fails if all index writes don't succeed. By default, we retain the exsiting
behavior, which uses a thread-pool to write to a cache of HTables and kills the server
if any write fails.
Merge pull request #442 from jyates/master

Making index writing pluggable.
Fix explain plan to reflect hinting that foces a range scan
Bug fix for IndexWriter.

Configuration keys for the IndexCommitter and FailurePolicy weren't specified,
causing a null pointer. Adding tests to catch this case in the future.
Cleanup to IndexUpdateManager and HTableInterfaceReference

Former: better toString format
Latter: fixing javadoc
Merge branch 'master' of github.com:forcedotcom/phoenix
updating the IndexTest with lowercase options
Fix build warnings
Bug fix for table caching + cleanup of tostrings.

Caching was closing HTables on shutdown, but the CoprocessorHost was also closing the same tables,
causing the concurrentModificationException on shutdown sometimes, which would cause the test
to hang. Also, using a SoftReference for the HTable doesn't work b/c the coprocessorHost has
a strong reference to the tables, causing them to never be cleaned up. Solution was to switch to
a standard LRU cache for the HTables; fortunately, also meant much simpler code.

Also, this meant fixing up some tests (and adding a new one for the caching factory).
Further, adding a rowkey tosString to IndexUpdateManager so we can better visualize the
updates being made.
Merge branch 'master' of github.com:forcedotcom/phoenix
Bug fix for TestParallelIndexWriter from merge
Speeding up IndexMemStore, removing ExposedMemStore.

Lots of time was spent creating a config in IndexMemStore that we didn't need - removing it.
Also, removing the timetracker stuff - we don't care about whether or not to get a scanner
for the store, given a timerange - we always scan the store.

Additionally, removing ExposedMemStore since we are using our own impl now.
Switching ValueGetter to use ImmutableBytesPtr.

There is a bunch of overhead associated with copying byte[]s. We now just return ImmutableBytePtrs
and store ptrs, when at all possible.
Adding covered columns back to covered set when found.

We had the infrastructure to track the columns that have already been loaded, but
never actually updated the set of columns that were loaded. This meant that we
reloaded the same columns over and over, even though they had already been loaded
Comment out test to get perf numbers
Merge branch 'master' of github.com:forcedotcom/phoenix
Fixing bug in TestLocalTableState

Forgot to cleanup the previous test from when
we were using PendingKeyValue to manage state in
the memstore. Now, correctly tests rolling back
plus some extra test around not loading columns.
Merge branch 'master' of github.com:forcedotcom/phoenix