initial implementation of uv_promise_t

uv_promise_t implementation as proposed in https://groups.google.com/forum/#!topic/libuv/nXZpATk7zI0 and https://gist.github.com/avalanche123/98cdbc79feb0feaea33f.