UDP support

This PR adds support for UDP sockets. [The API](https://github.com/scalaz/scalaz-stream/blob/topic/udp/src/main/scala/scalaz/stream/udp.scala) is analogous to the `tcp` API, but UDP has no notion of accepting connections and is more explicitly packet oriented. See [the tests](https://github.com/scalaz/scalaz-stream/blob/topic/udp/src/test/scala/scalaz/stream/UdpSpec.scala#L14) for an example use.

This will supercede #240.

This PR is based off the topic/socket branch. I'll probably wait to merge this to master until early next week, so people have a chance to take a look and provide feedback, then we should cut a release with both the tcp and udp support, as well as the other miscellaneous changes.

@pchlupacek @fthomas @stucchio @mpilquist