First attempt at sockets in Links.

The provided interface consists of one abstract type (Socket) and four
functions:

  connectSocket : (String,Int)~>Socket
    First argument is server name, second argument is port
  readFromSocket : (Socket)~>String
  writeToSocket : (String,Socket)~>()
  closeSocket : (Socket)~>()

There are a couple of things that should probably be fixed about this
patch:

 * First, it introduces dependencies on libc (maybe already there?) and
   the Unix library.  Not sure if these are avoidable.  Similarly, not
   sure how they would affect building Links on Mac/Cygwin.

 * Second, I thought about making Sockets linear (to force proper use of
   close), but I think the type checker is still assuming that all
   abstract types are unlimited.

 * Third, we may want an interface that doesn't bake in
   strings (although this seems to match up with the underlying Ocaml
   implementation, so perhaps that's fine).