Add working error codes.

* Libuv error integers are now mapped to an OCaml datatype
* This is generated by a c file -> ml file. The c file writes out the
  ml code we need.
* Includes int -> error, error -> string, error -> int functions
* Will roll this out everywhere else shortly