fix(tests/discovery): use host as -peers parameter instead of url

Or it cannot test the functionality correctly.
Moreover, add TestDiscoveryNoWithBackupPeers as the test for it.
feat(discovery): adjust boot order to find peers

The boot order for peers is -discovery, -peers, log data, forming
new cluster itself.

Special rules:
1. If discovery succeeds, it would find peers specified by discover URL
only.
2. Etcd would fail when meeting bad -discovery, no -peers and log data.

Add TestDiscoveryDownNoBackupPeersWithDataDir as the test.
docs: boot order to find peers
Merge pull request #569 from unihorn/5

Ordering and functionality of `-discovery` `-peers` and data dir to find peers
fix(store): make NodeExtern.Value a *string

Before this change if the value of a Node was "" it would get dropped from the json
encoding and the Node.Value field would be missing. Fix this problem by making
NodeExtern.Value a *string so that an empty string will be encoded but a nil value
will drop the field.
Merge pull request #524 from yifan-gu/remove_omitempty_on_value

remove omitempty on value
chore: rename 'heartbeat timeout' to 'heartbeat interval'

Heartbeat timeout means the period length that indicates heartbeat is
out of service, which is different from heartbeat interval.

So we should use '-peer-heartbeat-interval' instead of
'-peer-heartbeat-timeout' in etcd.

'-peer-heartbeat-timeout' is deprecated but still could be used.
Merge pull request #577 from unihorn/6

chore: rename 'heartbeat timeout' to 'heartbeat interval'
Add links to haskell bindings and scrz project
feat(Documentation): add a section on consistent reads

We have waited too long to document `consistent=true`. Document it!
Merge pull request #585 from philips/document-consistent

feat(Documentation): add a section on consistent reads
Merge pull request #586 from wereHamster/patch-1

docs: Add links to haskell bindings and scrz project
Trivial formatting correction
Merge pull request #592 from Plasma/patch-1

Trivial formatting correction
feat(Documentation/api): document file upload

This gets asked about a lot int IRC/mailinglist/etc. Fixes this issue:
https://github.com/coreos/etcd/issues/383#issuecomment-31183603
Merge pull request #596 from philips/add-file-upload-docs

feat(Documentation/api): document file upload
fix(mod/lock): correct watch index to remove cpu load

The waitIndex was being pulled from the wrong node in the lock parent which caused the watch to be returned immediately. This caused a continuous set of calls while a client was waiting for a lock.
Merge pull request #593 from benbjohnson/lock-fix

fix(mod/lock): correct watch index to remove cpu load
fix(README): remove the drone.io badge

the drone.io badge is either cached wrong by github or links to a wrong version when we build a branch, just remove it.
fix(discovery): remove its own address from peer list to join