proxy/redirect/user agent support, use node-gyp, and migrate to libuv