Remove an unused import
Use the parsed id values for the later assertions

* the 'id' variable was previously unused, but is helpful to validate that the correct document
  is returned
* the category id doesn't have to be hard-coded in the test (and the JSON document), but rather we
  can read it from the DBObject/DBRef and query using it
Merge pull request #431 from Collaborne/cleanup/initial-import-test-unused-imports

Remove an unused import
Merge pull request #432 from Collaborne/tests/dbref-test-stronger

Use the parsed id values for the later assertions
Simplify the logic to create the OplogSlurper threads

In both the sharded and the non-sharded case we're actually running the same code, with the minute
difference of avoiding to get a specific MongoClient. This however isn't needed, as those clients
are cached anyways.

Remove the condition on mongos, and just create threads for each shard.
Stop implementing Runnable in CollectionSlurper

The CollectionSlurper class is really a helper, and not something that runs in a separate thread. Removing
the Runnable allows us to give a reasonable name to the method that does the initial import, and later on
also allows to provide parameters to the methods rather than to the class.
Move the 'timestamp' parameter from the constructor to the method(s)

This makes it more obvious that this timestamp is a detail that is only relevant to the
way the implementation works.

While there: document the parameter.
Start importing from the last timestamp when a river is stopped and started again

The river remembers the timestamp it last imported, but this information wasn't used
when the tailer threads start up. If a river was stopped for a while (for example because
it failed and was restarted) data between the last import time and the current shard
oplog time was never processed.

Note that the test does some aggressive reflection to restart the river, this would become
obsolete with #407 merged.
Remove a now-unused method
Remove unused import
Use a separate logger for the StatusChecker

This helps distinguishing the logging from the checker about starting/stopping the river
from the actual information that the river is doing that.
Improve the logging

* unify the way we talk about the river
* use "begin of operation" and "end of operation" log statements
* move some log statements to more logical places

Suggested-by: @benmccann
Merge branch 'split-river-start_stop' into master-collaborne
Merge branch 'river-initial-skip-initial-import' into master-collaborne

Conflicts:
	src/main/java/org/elasticsearch/river/mongodb/MongoDBRiver.java
Remove the reflection code needed to restart the river
Factor out common code for starting a Mongod process into methods
Use distinct labels for the tokumx and mongodb output
Merge branch 'river-test-mongod-logging' into master-collaborne