Implement read2 and write2 so we can pass handles between processes

This allows us to pass live sockets between processes using `uv_write2` and `uv_read2_start`.

This closes #32.
we don't have a style guide for the agent.  like i said i think its fine unless @rphillips or @robert-chiniquy  objects