Implemented os_utime

To replace the code in fileio.c.
Fun fact: libuv does not use utimes yet (if available)
> Since this function is only use by file info structs, I think it would make more sense to write os_fileinfo_utime()

It's not just for use by `fileinfo`, just that it can only be exposed by `fileinfo`. But I can see your reasoning. I like the parallelism with `utime()/utimes()` on the UNIX side though, and `os_utime()` looks more concise (it's a platform independent `utime()`).

I agree about the `uv_timespec_ts` though. They look out of place. But I wouldn't want the function to take `double`'s either, in my opinion. Floating point is just the wrong representation for time (https://randomascii.wordpress.com/2012/02/13/dont-store-that-in-a-float/). The should take 64-bit integers representing nanoseconds.