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
Fix build warnings