I'm all for getting more info to the user, especially if it doesn't complicate calling patterns. Since we seem to be exposing libuv anyway (through `os_stat` for example), perhaps it's not such a big problem to bring in libuv'isms into this.

Then again, I've always had a weak spot for how to linux kernel does it: return a signed number where negative values indicate an error, and positive ones mean success (like `read()`).