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.