[RFC] Implement os_fchown and remove HAVE_FCHOWN

Yet another little step of #133.
TODO: write unit tests for `os_fchown`.
Is the cast `(uid_t)-1` necessary or desirable now? Looks like `uid_t` comes `unistd.h`. And, `uv-win.h` defines `uv_uid_t` as `unsigned char`.