added accept and listen...cannot properly pass file descriptor to socket constructor in accept
No need to check new_fd.num() -- FileDescriptor constructor does that already
Allow use of move semantics when passing lvalue