Many updates
More changes

* Move flag structs to flags.go
* Add /search HTTP POST endpoint (takes a SearchRequest as JSON)
Remove some unused datastructures

* Dirs can be derived by the client by scanning the file list
Persist the datastore and make config non-global

* All changes required to make configuration not global, but passed to
  the system at initialization time. Note it should not be modified
  after creation, as there are multiple copies of the config object in
  each subsystem.

* Persist the datastore, naively flushing after each write when
  a filename is used with the newDbWithJsonBacking function to
  create a KeyValueStorer.
Store just the port number, no leading host or ':'
Operational improvements

* Correctly write the config file and re-read it.
  Previously, Repo were being read from config with 0 shards, this is
  now corrected by JSON exporting numShards->NumShards.

* Simplify some format conversions

* Wrap error ignoring cases in functions when deferring, to
  keep the 'go vet' happy.

* For fun, report the total data and index size of all Repos
  at boot.

* Track (but don't yet report on) posting query durations.

* Clean up some poorly formatted log messages.
Add spiffy README