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
fix(tests/multi_node_kill_all_and_recovery): wait for cluter to build over
fix(transporter): CancelRequest doesn't work on HTTPS connections blocked

Currently this is a workaround. And it should be fixed in Go1.3.
chore(server): remove useless CancelWhenTimeout

Setting request timeout is covered by go-httpclient now.
Merge pull request #598 from unihorn/19

fix bugs that are found in issue #579