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
Merge branch 'spray-wip-IO' into wip-IO-TcpConnectionActors

Conflicts:
	akka-io/src/test/scala/akka/io/TcpConnectionSpec.scala