kontrol: decouple etcd store and use etcd as a remote backend

**THIS IS WIP, DO NOT MERGE YET**

This will close #47 . Decoupling will provide us the following benefits:

1. Kontrol will be more scalable. We can open and run multiple kontrol instances without caring about the underlying etcd store
2. Kontrol can use different backends in the future and not just etcd
3. Maintaining and adding new features will be simplified