feat(*): bootstrap initial commit

Setup the flags, and checkin the docs. Lets do this!
refactor(server): move utilities into pkg

like camlistore lets move these utilities into a `pkg` prefix.
refactor(config): make config its own package

Refactor config into its own package. Trying to tease the config from
the server so that all of the control surfaces are exposed in the Server
for easier testing.
feat(bootstrap): wire up the flag

This wires up `-bootstrap-url` to some code (which crashes) :)
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.
Merge pull request #512 from philips/bootstrap-protocol

feat(discovery): initial working code