More faux object orientation (i.e. hiding structures and making
fd_reader/writer more robust: no dependency on 'int *fd' to be live while the reader/writer is in use).
fd_reader/writer more robust: no dependency on 'int *fd' to be live while the reader/writer is in use).