Total overhaul of the design.

Divide the server into three parts:
* Store: Key-value store with Get/Put/Delete methods
* Router: Handles replication and routing of request to the Stores
* Endpoint: Exposes a public REST API and sends off the request to the
* correct router.