Use a separate thread for starting up the river

The river status now changes from (nothing) to "START_PENDING" in the ES river startup code, to
"STARTING" while the startup thread is working on setting up the river, to "RUNNING" when the slurper/indexer
threads are active.

The process for stopping the river is unchanged up for the interrupting of the startup thread, should one be around.

The status checker avoids sending multiple start requests, and #internalStartRiver() ignores the request
when there is a non-null startupThread.