Add several mch_* unit tests, port mch_isdir to libuv.

Addressing #281.

@tarruda I've added a [test](https://github.com/lslah/neovim/commit/5f7dd5171bd42272a3f909b1c261256c188b7868#diff-2f98e7003b1b21823fec5cf48245414cL74) which'll probably fail in a windows environment, since I have no clue how to write it properly.

I'm not sure, how we handle windows currently. Is it our first aim to get everything done in a unix-like-environment and take care of windows afterwards (when most platform-specific code is hidden behind libuv anyway)? Regarding the tests: Does that mean I don't have to care about windows now? Should I delete/uncomment the test, make it pending or just add a comment, that it could cause trouble under windows?

Sorry, that I am bothering you with a lot of details, but I want to write my code the intended way right from the beginning.