Copy-on-write WIP
initial Java7 NIO implementation
Merge branch 'topic/copy-on-write' of github.com:scalaz/scalaz-stream into nio/async-socket
Implemented Exchange combinators.  Some treatment to Buffer
more principled `Exchange`
Merge branch 'mergex2' of github.com:scalaz/scalaz-stream into nio/async-socket

Conflicts:
	src/main/scala/scalaz/stream/Process.scala
some contract improvements on Exchange
Merge branch 'mergex2' of github.com:scalaz/scalaz-stream into nio/async-socket

Conflicts:
	src/main/scala/scalaz/stream/process1.scala
NIO connect and echo works
Added limit server to spec + some more debugging stuff
Implemented spec for NIO. Fixed correct EOF behaviour of NIO client. Removed unnecessary S() in MergeX that caused deadlock with scalacheck object specifications.
Introduced Bytes, Immutable effective wrapper of Array[Byte]
Added decode, asByteBuffer to Bytes, rename shrinked to compact
Added Bytes to NioExchange
Merge branch 'refs/heads/mergex2' into nio/async-socket
fixed pipeIn
Added Exchange.loop + ExchangeSpec
Changed Exchange to be a case class instead of trait
Merge branch 'refs/heads/mergex2' into nio/async-socket
Merge branch 'refs/heads/mergex2' into nio/async-socket