Separate instantiation of ResultToSolrMapper

Move instantiation out of hbase-indexer-server so that it can
later be used in a MapReduce batch indexing context.
Separate Indexer from SepListener

Extract the indexing functionality of the Indexer class, and
add a new class that is a SepListener and passes data down to
an underlying Indexer.

This commit also introduces the RowData interface, which has
implementations that wrap SepEvents or Results. The Indexer
functionality runs based on RowData instances, allowing it to be
used in both NRT and batch contexts.
Extract SolrWriter into an interface.

Allow for plugging other methods of writing SolrInputDocuments
into an Indexer, for use in a non-NRT (i.e. batch) context.
Introduce hbase-indexer-mr module

Add initial base classes for providing MapReduce indexing
functionality, but not including actual tooling to create or run
indexing jobs.

Also refactor SolrInputDocumentWriter to be an interface and allow
writing in both NRT and MapReduce contexts.
Copy constructor for IndexerConfBuilder

Allow creating a new IndexerConfBuilder instance based on from
an existing IndexerConf instance.
Initial rough cut of MapReduce indexing tool

Based on a forked version of the standard MapReduceIndexerTool
to set up the basic structure of reuse between the
HBaseMapReduceIndexerTool and the standard MapReduceIndexerTool.

The ForkedMapReduceIndexerTool added in this commit is intended
to be removed as soon as the standard MapReduceIndexerTool has
been updated for easier reuse.
Add testing for conf handling of index connection params
Add direct writing option
Use max of reducers or shards as num reducers
Rename package to com.ngdata.hbaseindexer.mr
Rename cmdline args to be according to specs
Small method renaming and addition of javadoc
Fix name of runIndexingJob method
Add row and timestamp scan parameters

Allow setting the start and end rows for the scan used for
indexing, as well as the start and end timestamps for cells to be
included in indexing.
Add initial MR index integration test structure
Extract argument validation/evaluation from tool

Separate out the evaluation of various combinations of cmdline
arguments into a separate class to allow for easier isolated
testing of various combinations and their effects.
Update scan parameter names for consistency

Make all HBase-specific parameters start with "hbase-" prefix.
Also add additional docs about inclusive/exclusive semantics of
scan parameters.
Remove obsolete --direct-write cmdline arg
Use MapReduceIndexerTool#waitForCompletion for job control
Don't create output dir in direct write mode