fix(mod/lock): Use dedicated channel to shutdown goroutine properly

If closeChan is available and stopWatchChan was closed by defer
select selects a single channel randomly. This causes a panic sending to closed
channel.
fix(mod/lock): Use CreatedIndex in the first node to watch

ModifiedIndex in the lock directory is not incremented and the event
store has only 1000 histories for now.

Acquiring a lock is not queued while (index - ModifiedIndex) > 1000 and
prevIndex exists.
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 compile bug in peer_server_handlers.go 

resp.Success is a func() bool, not a bool.  Call it.
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.
Merge pull request #516 from augustoroman/patch-1

fix(server compilation): compile bug in peer_server_handlers.go
Revert "Fix compile bug in peer_server_handlers.go "

This reverts commit e1ed380f043b063ee36edb92ffe21d49819168e0.
chore(*): gofmt everything
chore(*): make everything use goven

for i in github.com/BurntSushi/toml github.com/coreos/go-etcd/etcd github.com/coreos/go-log/log github.com/gorilla/context github.com/rcrowley/go-metrics bitbucket.org/kardianos/osext github.com/coreos/go-systemd/journal github.com/coreos/raft code.google.com/p/goprotobuf/proto ; do goven  -copy -rewrite $i; done
fix(build/test.sh): use new GOPATH setup
fix(tests): use correct raft package
bump(github.com/stretchr/testify): 9cc77fa25329013ce07362c7742952ff887361f2
Merge pull request #520 from philips/use-goven

Use goven for all third party dependencies
fix(test.sh): use . not source
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