RFC: File watch events refactor

This refactors out the `UV_READABLE` and `UV_WRITABLE` constants so that they no longer need to be imported. Instead, there are two new types `FileEvent` and `FDEvent`. The callback parameter order has also been shuffled so that `status` is always the last argument.

Note, the first few commits are the same as #4210.