[RFC] impl mch_open with libuv

ref #133

update: leaving `mch_fopen` and `fdopen` (pointed out by @aktau below) for another PR.
There might be subtle differences in uncommon cases. The libuv source is pretty easy to navigate, so it's easy to verify.