Use file descriptions, shared between file descriptors
This maintains dup with a second meaning when the second argument is non-empty. It may be worth changing that API, but it is not handled in this PR.
This also adds F_SETFD
and F_GETFD
to fcntl.
Depends on https://github.com/redox-os/syscall/pull/16.