os: Fix 64-bit Linux support.

ino_t and off_t types (d_ino and d_off fields) appear to be defined as unsigned
long on Linux.

TODO: Move readdir wrapper function to C, because DIRENT layout is inherently
OS-specific.
os: listdir(), walk(): Handle unicode strings properly.

CPython lib reference specifies that listdir() should accept both bytes and
str argument, and return value type should match the argument. But no such
stipulation is made for walk(), so we just return strings.