feat(bootstrap): initial working code

This is an initial version of the bootstrap code that seems to work
under the normal circumstances. I need to mock out a server that will
test out all of the error cases now.
bump(github.com/coreos/go-etcd): 526d936ffe75284ca80290ea6386f883f573c232
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.