[RFC] impl mch_open with libuv

ref #133

update: leaving `mch_fopen` and `fdopen` (pointed out by @aktau below) for another PR.
and I just realized that it gets trickier because the preprocessor is how we get all the right header files included in the first place (it preprocesses `#include` as well). Now I'm really wondering what ffiex's angle is.