discovery

Discovery:
1. if the cluster is not full: add self to the cluster and return all the peers.
2. if the cluster is full, return a fullcluster error.
I see, we are completely changing how the discovery protocol works here. In that case perhaps we should create a separate registry directory or something?