embedded etcd

Goal:
main.go should be as simple as
```go
    etcd := NewServer(config)
    go log.Fatal(http.ListenAndServe(addr, etcd.peerHandler))
    log.Fatal(http.ListenAndServe(addr, etcd.clientHandler))
```
protip: if you make as many things as possible non-public in the first place, you'll get far fewer stupid questions from me trying to understand things ;-)