Network.Socket: use withCStringLen instead of withCString in send and sendTo

This fixes a bug where send and sendTo assume that `length xs` is the byte
length of the string.  withCString(Len) produces a locale-dependent encoding,
so this assumption may be untrue if, say, UTF-8 is used.
Merge pull request #101 from joeyadams/withCStringLen

Network.Socket: use withCStringLen instead of withCString in send and sendTo