create akka-io subproject, see #2884
add testkit as a dependency for akka-io, see #2884
Add first version of TCP message protocol
Merge pull request #1009 from spray/wip-IO

Add first version of TCP message protocol
add design docs as background info for IO layer, see #2890
Merge pull request #1010 from akka/wip-2890-design-docs-∂π

add design docs as background info for IO layer, see #2890
add Tcp IO extension and first draft of settings/options, see #2888
Merge pull request #1014 from akka/wip-2888-IO-extension-∂π

add Tcp IO extension and first draft of settings/options, see #2888
Created top level manager for TCP based IO #2887
update/improve design docs as background info for IO layer, see #2890
Merge pull request #1019 from spray/wip-IO

update/improve design docs as background info for IO layer, see #2890
Merge pull request #1017 from drewhk/wip-2887-tcpmanager-drewhk

Created top level manager for TCP based IO #2887
tcp connection actors, see #2886
tcp selector and listener actors, extension of tcp manager actor, see #2885 and #2887
refactor tests to reuse common connection setup
fix assertion error typo
fix issues discussed in the pull request
use a direct buffer pool for buffers needed for channel.read/write

The major advantage of this approach is that a Write is only copied once
into its direct buffer and this direct buffer is kept until it is written
fully.
in tests make sure to get a server address that is highly probable to be currently unbound
improvements from the first round of feedback, see #2885 and #2887