feat(*): enable snapshots by default

Ben recently added test coverage for snapshots so we should enable it in
etcd. Lets do this.

https://github.com/goraft/raft/commit/1d66f6a111793e66877d4ce8427c2e2e6b9e29df
feat(server): log on snapshot success or failure

lila.local: snapshot of 12 events completed at index 479
lila.local: snapshot of 12 events at index 491 attempted and failed: handling snapshot
feat(prevNode): add "prevNode" to "Set" response
feat(prevNode): add test for prevNode
fix(server): fix client certificate verification

In d0c4916fe9b2afaa273a2a7bc9782321a866ab9f the TLS CA Certificate
verification broke.

This was bisected using the following basic test:

```
./bin/etcd -f -name machine0 -data-dir machine0 -ca-file=/tmp/ca/ca.crt -cert-file=/tmp/ca/server.crt -key-file=/tmp/ca/server.key.insecure
```

And in another window doing

```
curl --key /tmp/ca/server2.key.insecure  --cert /tmp/ca/server2.crt -k -L https://127.0.0.1:4001/v2/keys/foo -XPUT -d value=bar -v
```

Before merging this PR there are a few things that need to be fixed up:

1) Tests for client certs both positive and negative
2) Refactor (or at least documentation of) the TLSConfig types
doc(server): some basic docs on the tls_config object

This should be refactored but something to remember while refactoring.
test(TLS): Add test coverage for etcd TLS
Merge pull request #1 from bcwaldon/fixup-server-tls-client-config

test(TLS): Add test coverage for etcd TLS
Merge pull request #519 from philips/fixup-server-tls-client-config

fix(server): fix client certificate verification
fix some typos in comments in store.go
fix a format error in libraries-and-tools.md
Merge pull request #525 from yifan-gu/fix_comments

fix some typos in comments in store.go
Merge pull request #507 from philips/turn-snapshots-on-by-default

feat(*): enable snapshots by default
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