rafthttp: add batcher
After we enable streaming, there will be a large amount of msgAppResp due to high
rate msgApp. We should batch msgAppResp in a meanful way.
Merge pull request #1768 from xiang90/batcher

rafthttp: add batcher
pkg/transport: add timeout dailer and timeout listener
integration: longer request timeout for slow travis
Merge pull request #1771 from xiang90/listener

pkg/transport: add timeout dailer and timeout listener
pkg/transport: add copyright header
Merge pull request #1773 from xiang90/header

pkg/transport: add copyright header
rafthttp: log start and stop of streaming
pkg/transport: fix dialer typo
*: set read/write timeout for raft transport and listener
rafthttp: limit the data size read from connection each time
Merge pull request #1770 from yichengq/230

*: set read/write timeout for raft transport and listener
rafthttp: limit the buffer for every read correctly
Merge pull request #1779 from yichengq/233

rafthttp: limit the buffer for every read correctly
raft: always check leader changes in node run loop
Merge pull request #1780 from xiang90/fix_raft_lead

raft: always check leader changes in node run loop
backup: Add fatal if dest snapshot failed

Errors are currently silently swallowed
etcdserver: truncate WAL from correct index when forcing new cluster

When loading from a backup with a snapshot and WAL, the length of WAL entries
can be lower than the current index integer value, causing a panic when
slicing off uncommitted entries. This looks for WAL entries higher than
the current index before slicing.
backup: Ensure dest snapshot dir always exists

Otherwise the SaveSnap operation fails
Merge pull request #1782 from orls/fix-forcenew-panic

etcdserver: Fix panic when restoring from backup (-force-new-cluster)