fd::close(int errcode): errcode can be >= 0.

This is the new name for fd::error_close(int errcode). If errcode >= 0,
use -EBADF.