[RFC] impl mch_open with libuv

ref #133

update: leaving `mch_fopen` and `fdopen` (pointed out by @aktau below) for another PR.
Even if `#define` would would in LuaJIT (which it doesn't [afaik](http://luajit.org/ext_ffi_api.html)), my -- admittedly rickety -- header massaging infrastructure runs all headers through a preprocessor, which would remove all defines.

Perhaps we could add a patch to transform all `#define`'s that look like integral types into `enum`'s. This detection of suitable defines would need to happen before the preprocessor run. Another possibility is to skip the `#define` -> `enum` transform and to just define them as Lua variables when encountered. This would possibly also allow us to use string `#define`'s, should that ever be necessary.

It's also possible [ffiex](https://github.com/umegaya/ffiex) already has something for it (or that ffiex can replace the entire C pre-pre-processor). Don't have a lot of time now, though.