fix(server): avoid race conditions in Run/Stop

- don't close ready channel until PeerServer is listening.
  avoids possible panic in Stop() if PeerServer is nil.

- avoid data race in Run() (err variable was shared between 2 goroutines)

- avoid data race in PeerServer Start/Stop (PeerServer.closeChan)
fix(tests/v1_migration): correct HTTP response

The bug is introduced in 03839ca8 due to the mistake.
Merge pull request #728 from unihorn/64

fix(tests/v1_migration): correct HTTP response
chore: gofmt go files
Merge pull request #729 from unihorn/65

chore: gofmt go files
Merge pull request #725 from dougm/server-lifecycle-fixes

fix(server): avoid race conditions in Run/Stop
chore: rename proxy mode to standby mode

It makes the name more reasonable.
Merge pull request #733 from unihorn/66

chore: rename proxy mode to standby mode
chore: gofmt go files
Merge pull request #734 from unihorn/67

chore: gofmt go files
fix(server): rejoin cluster with different ip
docs(clustering): docs about rejoin
tests(rejoin): add TestReplaceWithDifferentPeerAddress

The functionality has not been implemented yet.
Merge pull request #643 from unihorn/45

fix(server): rejoin cluster with different ip