Add nio File operations

The functionality mirrors the functionality in the io package with the exception that all operations are performed asynchronously using the java nio2  framework.
fixes cause exception propagation
Document transducers that use mutable objects
Implement distinctConsecutiveBy in terms of filterBy2
Initial version of socket API
Tweaks to socket API
Test examples in ScalaDoc with sbt-doctest
socket api tweaks and added tests
Merge pull request #229 from scalaz/fix-cause-stack

fixes cause exception propagation
WIP on new socket API
simplified test
Merge pull request #242 from fthomas/filterBy2

Implement distinctConsecutiveBy in terms of filterBy2
Merge pull request #248 from fthomas/sbt-doctest

Test examples in ScalaDocs with sbt-doctest
Merge pull request #241 from fthomas/doc-mutable

Document transducers that use mutable objects
rename `niofiles` object to `file` per request by @pchiusano
Merge pull request #212 from bryce-anderson/topic/niofiles

Add nio File operations
Cleanup and  renaming, also improved tests
Merge remote-tracking branch 'origin/master' into topic/socket
Added chat server test shell
Filled in chat client with some nonsense