TcpConnection: abstract PendingWrite logic to make room for other types of writing
Tcp: abstract writing into WriteCommand to make place for other kinds of writing
Tcp: introduce WriteFile to support zero-copy writing of files (using FileChannel.transferTo), fixes #2896
Tcp: cosmetic changes and more checks

 * whitespace
 * Write.Empty => Write.empty
 * check requirements
 * better 0-checks
TcpConnection: add `file-io-transferTo-limit` config parameter
TcpConnection: don't lose direct buffers when ByteString operations fail
TcpConnection: forward exception from WriteFile dispatcher to the actor for proper handling
Merge pull request #1321 from spray/wip-IO-WriteFile-rebased

Tcp: introduce WriteFile to support zero-copy writing of files, fixes #2896
Disallow re-joining, see #2873

* Disallow join requests when already part of a cluster
* Remove wipe state when joining, since join can only be
  performed from empty state
* When trying to join, only accept gossip from that member
* Ignore gossips from unknown (and unreachable) members
* Make sure received gossip contains selfAddress
* Test join of fresh node with same host:port
* Remove JoinTwoClustersSpec
* Welcome message as reply to Join
* Retry unsucessful join request
* AddressUidExtension
* Uid in cluster Member identifier
  To be able to distinguish nodes with same host:port
  after restart.
* Ignore gossip with wrong uid
* Renamed Remove command to Shutdown
* Use uid in vclock identifier
* Update sample, Member apply is private
* Disabled config duration syntax and cleanup of io settings
* Update documentation
Merge pull request #1330 from akka/wip-2873-disallow-re-joining-patriknw

Disallow re-joining, see #2873
Reliable remote supervision and death watch, see #2993

* RemoteWatcher that monitors node failures, with heartbeats
  and failure detector
* Move RemoteDeploymentWatcher from CARP to RARP
* ClusterRemoteWatcher that handles cluster nodes
* Update documentation
* UID in Heartbeat msg to be able to quarantine,
  actual implementation of quarantining will be implemented
  in ticket 2594
Merge pull request #1323 from akka/wip-2993-remote-watch-patriknw

Reliable remote supervision and death watch, see #2993
Fix failing UnreachableNodeJoinsAgainSpec

* Shutting down test conductor controller is never a good idea
Merge pull request #1341 from akka/wip-UnreachableNodeJoinsSpec-patriknw

Fix failing UnreachableNodeJoinsAgainSpec