Remove the commented setting of "autoConnectRetry"

This option is deprecated without replacement, and doesn't really make sense: if connecting fails before
the connect timeout then it likely won't get fixed by retrying: it must be something other than just time that
prevents us from connecting.

Additionally: the connectTimeout of 15s is exactly the same time that Mongo would automatically retry (see
DBPort#CONN_RETRY_TIME_MS, which is used when #maxAutoConnectRetryTime is not configured), so the retry would never
help.
Use a dedicated service for managing the MongoClient instances

When using many rivers that connect to the same set of servers it is wasteful to have one MongoClient instance with
a dedicated connection pool for each river.

The MongoClientService is a per-node service, and provides access to MongoClient instances based on the provided list
of server addresses. Note that this means rivers that use the same servers but different options will now get the options
of whichever river definition was processed first. In practice this should not be a problem, as the options are exactly
intended to control resource usage.
Replace the deprecated MongoException.CursorNotFound with MongoCursorNotFoundException
Start the slurper threads from a separate thread

It can happen that at the time elasticsearch is started mongo is unavailable, and in those cases
the river would just fail. By moving the starting out we can easily retry without blocking the main
elasticsearch startup procedure.