This function does what was previously done in main:
create a search index, and try to recover for errors
if possible.
This commit also fixes plume-cli to use the new Searcher
API (that depends on a DbPool, not on a single Connection).
this way, we don't need to pass along a conn into the function.
This should make splitting PlumeRocket up into its components a little
easier. This PR is another attempt at fixing #799.