feat(discovery): fully working discovery now
chore(config): go fmt
fix(tests/server_utils): add a metrics bucket

This is required to avoid getting nil pointer exceptions if a peer joins
this test server.
tests(tests/functional): add tests for Discovery

This tests a variety of failure cases for the Discovery service
including:

- Initial leader failures
- Discovery service failures
- Positive tests for discovery working flawlessly
feat(Documentation/discovery-protocol): explain heartbeating

Explain more information about how the TTL works and etcds role.