Cleanup. In particular, modified how bindings bindings are opened and closed to improve correctness of atomicity.  Moved a lot of code from TCP and UDP into shared socket code, defining more explicitly what makes a socket transport.  Bumped the cabal version for a future release.