add sharding support

* was extremely annoying to manage 300+ java processess, so
  just add support for sharding, on write a 'shard number'
  can be specified, if it doesnt exist it will be created

* delete deletes in all shards
* write writes in only one shard (id 0 by default)
* search/facet multi-thread search in all shards