Fix infinite loop under linux... oops.
Note that get_pid_fd is broken under Darwin
Split "FD" class up

Split FD into RemoteFileDescriptor and LocalFileDescriptor.  FD still
exists for convenience as a factory function.
Fix get_open_fds() for None arguments in main